diff options
author | beck <> | 2021-11-24 01:12:43 +0000 |
---|---|---|
committer | beck <> | 2021-11-24 01:12:43 +0000 |
commit | 762fac1fce36c5a65717448f5452ff0495f51406 (patch) | |
tree | 174f53778a84b28475ebc2d99f4725e02e588530 | |
parent | 95e85ad8068be763e1ad04553b0d531f60507951 (diff) | |
download | openbsd-762fac1fce36c5a65717448f5452ff0495f51406.tar.gz openbsd-762fac1fce36c5a65717448f5452ff0495f51406.tar.bz2 openbsd-762fac1fce36c5a65717448f5452ff0495f51406.zip |
Make the certificate transparency code build with the rest of the library
Do not expose it yet, this will wait for an upcoming bump
ok tb@
-rw-r--r-- | src/lib/libcrypto/Makefile | 11 | ||||
-rw-r--r-- | src/lib/libcrypto/cryptlib.h | 5 | ||||
-rw-r--r-- | src/lib/libcrypto/err/err.h | 5 | ||||
-rw-r--r-- | src/lib/libcrypto/objects/obj_mac.num | 4 | ||||
-rw-r--r-- | src/lib/libcrypto/objects/objects.txt | 6 | ||||
-rw-r--r-- | src/lib/libcrypto/opensslfeatures.h | 4 | ||||
-rw-r--r-- | src/lib/libcrypto/ossl_typ.h | 10 | ||||
-rw-r--r-- | src/lib/libcrypto/stack/safestack.h | 48 |
8 files changed, 86 insertions, 7 deletions
diff --git a/src/lib/libcrypto/Makefile b/src/lib/libcrypto/Makefile index fba3871e73..1a026f7c60 100644 --- a/src/lib/libcrypto/Makefile +++ b/src/lib/libcrypto/Makefile | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: Makefile,v 1.50 2021/11/20 18:10:52 jsing Exp $ | 1 | # $OpenBSD: Makefile,v 1.51 2021/11/24 01:12:43 beck Exp $ |
2 | 2 | ||
3 | LIB= crypto | 3 | LIB= crypto |
4 | LIBREBUILD=y | 4 | LIBREBUILD=y |
@@ -18,7 +18,7 @@ CFLAGS+= -Wall -Wundef | |||
18 | .if ${COMPILER_VERSION:L} == "clang" | 18 | .if ${COMPILER_VERSION:L} == "clang" |
19 | CFLAGS+= -Werror | 19 | CFLAGS+= -Werror |
20 | .endif | 20 | .endif |
21 | CFLAGS+= -DLIBRESSL_INTERNAL | 21 | CFLAGS+= -DLIBRESSL_INTERNAL -DLIBRESSL_CRYPTO_INTERNAL |
22 | 22 | ||
23 | .if !defined(NOPIC) | 23 | .if !defined(NOPIC) |
24 | CFLAGS+= -DDSO_DLFCN -DHAVE_DLFCN_H -DHAVE_FUNOPEN | 24 | CFLAGS+= -DDSO_DLFCN -DHAVE_DLFCN_H -DHAVE_FUNOPEN |
@@ -112,6 +112,10 @@ SRCS+= comp_lib.c comp_err.c c_rle.c c_zlib.c | |||
112 | SRCS+= conf_err.c conf_lib.c conf_api.c conf_def.c conf_mod.c | 112 | SRCS+= conf_err.c conf_lib.c conf_api.c conf_def.c conf_mod.c |
113 | SRCS+= conf_mall.c conf_sap.c | 113 | SRCS+= conf_mall.c conf_sap.c |
114 | 114 | ||
115 | # ct/ | ||
116 | SRCS += ct_b64.c ct_err.c ct_log.c ct_oct.c ct_policy.c | ||
117 | SRCS += ct_prn.c ct_sct.c ct_sct_ctx.c ct_vfy.c ct_x509v3.c | ||
118 | |||
115 | # curve25519/ | 119 | # curve25519/ |
116 | SRCS+= curve25519.c curve25519-generic.c | 120 | SRCS+= curve25519.c curve25519-generic.c |
117 | 121 | ||
@@ -301,6 +305,7 @@ SRCS+= pcy_cache.c pcy_node.c pcy_data.c pcy_map.c pcy_tree.c pcy_lib.c | |||
301 | ${LCRYPTO_SRC}/cms \ | 305 | ${LCRYPTO_SRC}/cms \ |
302 | ${LCRYPTO_SRC}/comp \ | 306 | ${LCRYPTO_SRC}/comp \ |
303 | ${LCRYPTO_SRC}/conf \ | 307 | ${LCRYPTO_SRC}/conf \ |
308 | ${LCRYPTO_SRC}/ct \ | ||
304 | ${LCRYPTO_SRC}/curve25519 \ | 309 | ${LCRYPTO_SRC}/curve25519 \ |
305 | ${LCRYPTO_SRC}/des \ | 310 | ${LCRYPTO_SRC}/des \ |
306 | ${LCRYPTO_SRC}/dh \ | 311 | ${LCRYPTO_SRC}/dh \ |
@@ -360,6 +365,8 @@ HDRS=\ | |||
360 | ${LCRYPTO_SRC}/conf/conf.h \ | 365 | ${LCRYPTO_SRC}/conf/conf.h \ |
361 | ${LCRYPTO_SRC}/conf/conf_api.h \ | 366 | ${LCRYPTO_SRC}/conf/conf_api.h \ |
362 | ${LCRYPTO_SRC}/crypto.h \ | 367 | ${LCRYPTO_SRC}/crypto.h \ |
368 | ${LCRYPTO_SRC}/ct/ct.h \ | ||
369 | ${LCRYPTO_SRC}/ct/cterr.h \ | ||
363 | ${LCRYPTO_SRC}/curve25519/curve25519.h \ | 370 | ${LCRYPTO_SRC}/curve25519/curve25519.h \ |
364 | ${LCRYPTO_SRC}/des/des.h \ | 371 | ${LCRYPTO_SRC}/des/des.h \ |
365 | ${LCRYPTO_SRC}/dh/dh.h \ | 372 | ${LCRYPTO_SRC}/dh/dh.h \ |
diff --git a/src/lib/libcrypto/cryptlib.h b/src/lib/libcrypto/cryptlib.h index d44738bf3c..6c3731d971 100644 --- a/src/lib/libcrypto/cryptlib.h +++ b/src/lib/libcrypto/cryptlib.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: cryptlib.h,v 1.25 2016/11/04 17:30:30 miod Exp $ */ | 1 | /* $OpenBSD: cryptlib.h,v 1.26 2021/11/24 01:12:43 beck Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -72,6 +72,9 @@ extern "C" { | |||
72 | #define X509_CERT_DIR_EVP "SSL_CERT_DIR" | 72 | #define X509_CERT_DIR_EVP "SSL_CERT_DIR" |
73 | #define X509_CERT_FILE_EVP "SSL_CERT_FILE" | 73 | #define X509_CERT_FILE_EVP "SSL_CERT_FILE" |
74 | 74 | ||
75 | #define CTLOG_FILE OPENSSLDIR "/ct_log_list.cnf" | ||
76 | #define CTLOG_FILE_EVP "CTLOG_FILE" | ||
77 | |||
75 | void OPENSSL_cpuid_setup(void); | 78 | void OPENSSL_cpuid_setup(void); |
76 | 79 | ||
77 | #ifdef __cplusplus | 80 | #ifdef __cplusplus |
diff --git a/src/lib/libcrypto/err/err.h b/src/lib/libcrypto/err/err.h index 22cdb2987f..20fa9084a6 100644 --- a/src/lib/libcrypto/err/err.h +++ b/src/lib/libcrypto/err/err.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: err.h,v 1.25 2017/02/20 23:21:19 beck Exp $ */ | 1 | /* $OpenBSD: err.h,v 1.26 2021/11/24 01:12:43 beck Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -196,6 +196,7 @@ typedef struct err_state_st { | |||
196 | #define ERR_LIB_HMAC 48 | 196 | #define ERR_LIB_HMAC 48 |
197 | #define ERR_LIB_JPAKE 49 | 197 | #define ERR_LIB_JPAKE 49 |
198 | #define ERR_LIB_GOST 50 | 198 | #define ERR_LIB_GOST 50 |
199 | #define ERR_LIB_CT 51 | ||
199 | 200 | ||
200 | #define ERR_LIB_USER 128 | 201 | #define ERR_LIB_USER 128 |
201 | 202 | ||
@@ -234,6 +235,7 @@ typedef struct err_state_st { | |||
234 | #define JPAKEerr(f,r) ERR_PUT_error(ERR_LIB_JPAKE,(f),(r),__FILE__,__LINE__) | 235 | #define JPAKEerr(f,r) ERR_PUT_error(ERR_LIB_JPAKE,(f),(r),__FILE__,__LINE__) |
235 | #define GOSTerr(f,r) ERR_PUT_error(ERR_LIB_GOST,(f),(r),__FILE__,__LINE__) | 236 | #define GOSTerr(f,r) ERR_PUT_error(ERR_LIB_GOST,(f),(r),__FILE__,__LINE__) |
236 | #define SSLerr(f,r) ERR_PUT_error(ERR_LIB_SSL,(f),(r),__FILE__,__LINE__) | 237 | #define SSLerr(f,r) ERR_PUT_error(ERR_LIB_SSL,(f),(r),__FILE__,__LINE__) |
238 | #define CTerr(f, r) ERR_PUT_error(ERR_LIB_CT,(f),(r),__FILE__,__LINE__) | ||
237 | #endif | 239 | #endif |
238 | 240 | ||
239 | #ifdef LIBRESSL_INTERNAL | 241 | #ifdef LIBRESSL_INTERNAL |
@@ -270,6 +272,7 @@ typedef struct err_state_st { | |||
270 | #define HMACerror(r) ERR_PUT_error(ERR_LIB_HMAC,(0xfff),(r),__FILE__,__LINE__) | 272 | #define HMACerror(r) ERR_PUT_error(ERR_LIB_HMAC,(0xfff),(r),__FILE__,__LINE__) |
271 | #define JPAKEerror(r) ERR_PUT_error(ERR_LIB_JPAKE,(0xfff),(r),__FILE__,__LINE__) | 273 | #define JPAKEerror(r) ERR_PUT_error(ERR_LIB_JPAKE,(0xfff),(r),__FILE__,__LINE__) |
272 | #define GOSTerror(r) ERR_PUT_error(ERR_LIB_GOST,(0xfff),(r),__FILE__,__LINE__) | 274 | #define GOSTerror(r) ERR_PUT_error(ERR_LIB_GOST,(0xfff),(r),__FILE__,__LINE__) |
275 | #define CTerror(r) ERR_PUT_error(ERR_LIB_CT,(0xfff),(r),__FILE__,__LINE__) | ||
273 | #endif | 276 | #endif |
274 | 277 | ||
275 | #define ERR_PACK(l,f,r) (((((unsigned long)l)&0xffL)<<24L)| \ | 278 | #define ERR_PACK(l,f,r) (((((unsigned long)l)&0xffL)<<24L)| \ |
diff --git a/src/lib/libcrypto/objects/obj_mac.num b/src/lib/libcrypto/objects/obj_mac.num index 26d3d458cf..cbde51906e 100644 --- a/src/lib/libcrypto/objects/obj_mac.num +++ b/src/lib/libcrypto/objects/obj_mac.num | |||
@@ -1015,3 +1015,7 @@ id_ct_signedChecklist 1014 | |||
1015 | id_kp_bgpsec_router 1015 | 1015 | id_kp_bgpsec_router 1015 |
1016 | tlsfeature 1016 | 1016 | tlsfeature 1016 |
1017 | id_ct_ASPA 1017 | 1017 | id_ct_ASPA 1017 |
1018 | ct_precert_scts 1018 | ||
1019 | ct_precert_poison 1019 | ||
1020 | ct_precert_signer 1020 | ||
1021 | ct_cert_scts 1021 | ||
diff --git a/src/lib/libcrypto/objects/objects.txt b/src/lib/libcrypto/objects/objects.txt index b2f1cc6121..33b780ff33 100644 --- a/src/lib/libcrypto/objects/objects.txt +++ b/src/lib/libcrypto/objects/objects.txt | |||
@@ -1357,6 +1357,12 @@ secg-scheme 14 3 : dhSinglePass-cofactorDH-sha512kdf-scheme | |||
1357 | : dh-std-kdf | 1357 | : dh-std-kdf |
1358 | : dh-cofactor-kdf | 1358 | : dh-cofactor-kdf |
1359 | 1359 | ||
1360 | # RFC 6962 Extension OIDs (see http://www.ietf.org/rfc/rfc6962.txt) | ||
1361 | 1 3 6 1 4 1 11129 2 4 2 : ct_precert_scts : CT Precertificate SCTs | ||
1362 | 1 3 6 1 4 1 11129 2 4 3 : ct_precert_poison : CT Precertificate Poison | ||
1363 | 1 3 6 1 4 1 11129 2 4 4 : ct_precert_signer : CT Precertificate Signer | ||
1364 | 1 3 6 1 4 1 11129 2 4 5 : ct_cert_scts : CT Certificate SCTs | ||
1365 | |||
1360 | identified-organization 36 : teletrust | 1366 | identified-organization 36 : teletrust |
1361 | teletrust 3 3 2 8 1 : brainpool | 1367 | teletrust 3 3 2 8 1 : brainpool |
1362 | brainpool 1 1 : brainpoolP160r1 | 1368 | brainpool 1 1 : brainpoolP160r1 |
diff --git a/src/lib/libcrypto/opensslfeatures.h b/src/lib/libcrypto/opensslfeatures.h index 49a5f15b59..b6b1904003 100644 --- a/src/lib/libcrypto/opensslfeatures.h +++ b/src/lib/libcrypto/opensslfeatures.h | |||
@@ -40,7 +40,9 @@ | |||
40 | #define OPENSSL_NO_COMP /* XXX */ | 40 | #define OPENSSL_NO_COMP /* XXX */ |
41 | /* #define OPENSSL_NO_CRYPTO_MDEBUG */ | 41 | /* #define OPENSSL_NO_CRYPTO_MDEBUG */ |
42 | /* #define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE */ | 42 | /* #define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE */ |
43 | /* #define OPENSSL_NO_CT */ | 43 | #ifndef LIBRESSL_CRYPTO_INTERNAL |
44 | #define OPENSSL_NO_CT /* XXX until we expose it */ | ||
45 | #endif | ||
44 | /* #define OPENSSL_NO_DECC_INIT */ | 46 | /* #define OPENSSL_NO_DECC_INIT */ |
45 | /* #define OPENSSL_NO_DES */ | 47 | /* #define OPENSSL_NO_DES */ |
46 | /* #define OPENSSL_NO_DEVCRYPTOENG */ | 48 | /* #define OPENSSL_NO_DEVCRYPTOENG */ |
diff --git a/src/lib/libcrypto/ossl_typ.h b/src/lib/libcrypto/ossl_typ.h index 99f120644f..6463084198 100644 --- a/src/lib/libcrypto/ossl_typ.h +++ b/src/lib/libcrypto/ossl_typ.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ossl_typ.h,v 1.14 2021/11/01 20:53:08 tb Exp $ */ | 1 | /* $OpenBSD: ossl_typ.h,v 1.15 2021/11/24 01:12:43 beck Exp $ */ |
2 | /* ==================================================================== | 2 | /* ==================================================================== |
3 | * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. | 3 | * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. |
4 | * | 4 | * |
@@ -176,4 +176,12 @@ typedef struct ocsp_req_ctx_st OCSP_REQ_CTX; | |||
176 | typedef struct ocsp_response_st OCSP_RESPONSE; | 176 | typedef struct ocsp_response_st OCSP_RESPONSE; |
177 | typedef struct ocsp_responder_id_st OCSP_RESPID; | 177 | typedef struct ocsp_responder_id_st OCSP_RESPID; |
178 | 178 | ||
179 | #ifdef LIBRESSL_CRYPTO_INTERNAL | ||
180 | typedef struct sct_st SCT; | ||
181 | typedef struct sct_ctx_st SCT_CTX; | ||
182 | typedef struct ctlog_st CTLOG; | ||
183 | typedef struct ctlog_store_st CTLOG_STORE; | ||
184 | typedef struct ct_policy_eval_ctx_st CT_POLICY_EVAL_CTX; | ||
185 | #endif | ||
186 | |||
179 | #endif /* def HEADER_OPENSSL_TYPES_H */ | 187 | #endif /* def HEADER_OPENSSL_TYPES_H */ |
diff --git a/src/lib/libcrypto/stack/safestack.h b/src/lib/libcrypto/stack/safestack.h index 690912b306..dbcb9ef350 100644 --- a/src/lib/libcrypto/stack/safestack.h +++ b/src/lib/libcrypto/stack/safestack.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: safestack.h,v 1.18 2019/08/11 14:14:14 jsing Exp $ */ | 1 | /* $OpenBSD: safestack.h,v 1.19 2021/11/24 01:12:43 beck Exp $ */ |
2 | /* ==================================================================== | 2 | /* ==================================================================== |
3 | * Copyright (c) 1999 The OpenSSL Project. All rights reserved. | 3 | * Copyright (c) 1999 The OpenSSL Project. All rights reserved. |
4 | * | 4 | * |
@@ -2179,4 +2179,50 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) | |||
2179 | LHM_lh_stats_bio(SSL_SESSION,lh,out) | 2179 | LHM_lh_stats_bio(SSL_SESSION,lh,out) |
2180 | #define lh_SSL_SESSION_free(lh) LHM_lh_free(SSL_SESSION,lh) | 2180 | #define lh_SSL_SESSION_free(lh) LHM_lh_free(SSL_SESSION,lh) |
2181 | 2181 | ||
2182 | #ifdef LIBRESSL_CRYPTO_INTERNAL | ||
2183 | #define sk_CTLOG_new(cmp) SKM_sk_new(CTLOG, (cmp)) | ||
2184 | #define sk_CTLOG_new_null() SKM_sk_new_null(CTLOG) | ||
2185 | #define sk_CTLOG_free(st) SKM_sk_free(CTLOG, (st)) | ||
2186 | #define sk_CTLOG_num(st) SKM_sk_num(CTLOG, (st)) | ||
2187 | #define sk_CTLOG_value(st, i) SKM_sk_value(CTLOG, (st), (i)) | ||
2188 | #define sk_CTLOG_set(st, i, val) SKM_sk_set(CTLOG, (st), (i), (val)) | ||
2189 | #define sk_CTLOG_zero(st) SKM_sk_zero(CTLOG, (st)) | ||
2190 | #define sk_CTLOG_push(st, val) SKM_sk_push(CTLOG, (st), (val)) | ||
2191 | #define sk_CTLOG_unshift(st, val) SKM_sk_unshift(CTLOG, (st), (val)) | ||
2192 | #define sk_CTLOG_find(st, val) SKM_sk_find(CTLOG, (st), (val)) | ||
2193 | #define sk_CTLOG_find_ex(st, val) SKM_sk_find_ex(CTLOG, (st), (val)) | ||
2194 | #define sk_CTLOG_delete(st, i) SKM_sk_delete(CTLOG, (st), (i)) | ||
2195 | #define sk_CTLOG_delete_ptr(st, ptr) SKM_sk_delete_ptr(CTLOG, (st), (ptr)) | ||
2196 | #define sk_CTLOG_insert(st, val, i) SKM_sk_insert(CTLOG, (st), (val), (i)) | ||
2197 | #define sk_CTLOG_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CTLOG, (st), (cmp)) | ||
2198 | #define sk_CTLOG_dup(st) SKM_sk_dup(CTLOG, st) | ||
2199 | #define sk_CTLOG_pop_free(st, free_func) SKM_sk_pop_free(CTLOG, (st), (free_func)) | ||
2200 | #define sk_CTLOG_shift(st) SKM_sk_shift(CTLOG, (st)) | ||
2201 | #define sk_CTLOG_pop(st) SKM_sk_pop(CTLOG, (st)) | ||
2202 | #define sk_CTLOG_sort(st) SKM_sk_sort(CTLOG, (st)) | ||
2203 | #define sk_CTLOG_is_sorted(st) SKM_sk_is_sorted(CTLOG, (st)) | ||
2204 | |||
2205 | #define sk_SCT_new(cmp) SKM_sk_new(SCT, (cmp)) | ||
2206 | #define sk_SCT_new_null() SKM_sk_new_null(SCT) | ||
2207 | #define sk_SCT_free(st) SKM_sk_free(SCT, (st)) | ||
2208 | #define sk_SCT_num(st) SKM_sk_num(SCT, (st)) | ||
2209 | #define sk_SCT_value(st, i) SKM_sk_value(SCT, (st), (i)) | ||
2210 | #define sk_SCT_set(st, i, val) SKM_sk_set(SCT, (st), (i), (val)) | ||
2211 | #define sk_SCT_zero(st) SKM_sk_zero(SCT, (st)) | ||
2212 | #define sk_SCT_push(st, val) SKM_sk_push(SCT, (st), (val)) | ||
2213 | #define sk_SCT_unshift(st, val) SKM_sk_unshift(SCT, (st), (val)) | ||
2214 | #define sk_SCT_find(st, val) SKM_sk_find(SCT, (st), (val)) | ||
2215 | #define sk_SCT_find_ex(st, val) SKM_sk_find_ex(SCT, (st), (val)) | ||
2216 | #define sk_SCT_delete(st, i) SKM_sk_delete(SCT, (st), (i)) | ||
2217 | #define sk_SCT_delete_ptr(st, ptr) SKM_sk_delete_ptr(SCT, (st), (ptr)) | ||
2218 | #define sk_SCT_insert(st, val, i) SKM_sk_insert(SCT, (st), (val), (i)) | ||
2219 | #define sk_SCT_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SCT, (st), (cmp)) | ||
2220 | #define sk_SCT_dup(st) SKM_sk_dup(SCT, st) | ||
2221 | #define sk_SCT_pop_free(st, free_func) SKM_sk_pop_free(SCT, (st), (free_func)) | ||
2222 | #define sk_SCT_shift(st) SKM_sk_shift(SCT, (st)) | ||
2223 | #define sk_SCT_pop(st) SKM_sk_pop(SCT, (st)) | ||
2224 | #define sk_SCT_sort(st) SKM_sk_sort(SCT, (st)) | ||
2225 | #define sk_SCT_is_sorted(st) SKM_sk_is_sorted(SCT, (st)) | ||
2226 | #endif | ||
2227 | |||
2182 | #endif /* !defined HEADER_SAFESTACK_H */ | 2228 | #endif /* !defined HEADER_SAFESTACK_H */ |