summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbeck <>2021-11-24 01:12:43 +0000
committerbeck <>2021-11-24 01:12:43 +0000
commit762fac1fce36c5a65717448f5452ff0495f51406 (patch)
tree174f53778a84b28475ebc2d99f4725e02e588530
parent95e85ad8068be763e1ad04553b0d531f60507951 (diff)
downloadopenbsd-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/Makefile11
-rw-r--r--src/lib/libcrypto/cryptlib.h5
-rw-r--r--src/lib/libcrypto/err/err.h5
-rw-r--r--src/lib/libcrypto/objects/obj_mac.num4
-rw-r--r--src/lib/libcrypto/objects/objects.txt6
-rw-r--r--src/lib/libcrypto/opensslfeatures.h4
-rw-r--r--src/lib/libcrypto/ossl_typ.h10
-rw-r--r--src/lib/libcrypto/stack/safestack.h48
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
3LIB= crypto 3LIB= crypto
4LIBREBUILD=y 4LIBREBUILD=y
@@ -18,7 +18,7 @@ CFLAGS+= -Wall -Wundef
18.if ${COMPILER_VERSION:L} == "clang" 18.if ${COMPILER_VERSION:L} == "clang"
19CFLAGS+= -Werror 19CFLAGS+= -Werror
20.endif 20.endif
21CFLAGS+= -DLIBRESSL_INTERNAL 21CFLAGS+= -DLIBRESSL_INTERNAL -DLIBRESSL_CRYPTO_INTERNAL
22 22
23.if !defined(NOPIC) 23.if !defined(NOPIC)
24CFLAGS+= -DDSO_DLFCN -DHAVE_DLFCN_H -DHAVE_FUNOPEN 24CFLAGS+= -DDSO_DLFCN -DHAVE_DLFCN_H -DHAVE_FUNOPEN
@@ -112,6 +112,10 @@ SRCS+= comp_lib.c comp_err.c c_rle.c c_zlib.c
112SRCS+= conf_err.c conf_lib.c conf_api.c conf_def.c conf_mod.c 112SRCS+= conf_err.c conf_lib.c conf_api.c conf_def.c conf_mod.c
113SRCS+= conf_mall.c conf_sap.c 113SRCS+= conf_mall.c conf_sap.c
114 114
115# ct/
116SRCS += ct_b64.c ct_err.c ct_log.c ct_oct.c ct_policy.c
117SRCS += ct_prn.c ct_sct.c ct_sct_ctx.c ct_vfy.c ct_x509v3.c
118
115# curve25519/ 119# curve25519/
116SRCS+= curve25519.c curve25519-generic.c 120SRCS+= 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
75void OPENSSL_cpuid_setup(void); 78void 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
1015id_kp_bgpsec_router 1015 1015id_kp_bgpsec_router 1015
1016tlsfeature 1016 1016tlsfeature 1016
1017id_ct_ASPA 1017 1017id_ct_ASPA 1017
1018ct_precert_scts 1018
1019ct_precert_poison 1019
1020ct_precert_signer 1020
1021ct_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)
13611 3 6 1 4 1 11129 2 4 2 : ct_precert_scts : CT Precertificate SCTs
13621 3 6 1 4 1 11129 2 4 3 : ct_precert_poison : CT Precertificate Poison
13631 3 6 1 4 1 11129 2 4 4 : ct_precert_signer : CT Precertificate Signer
13641 3 6 1 4 1 11129 2 4 5 : ct_cert_scts : CT Certificate SCTs
1365
1360identified-organization 36 : teletrust 1366identified-organization 36 : teletrust
1361teletrust 3 3 2 8 1 : brainpool 1367teletrust 3 3 2 8 1 : brainpool
1362brainpool 1 1 : brainpoolP160r1 1368brainpool 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;
176typedef struct ocsp_response_st OCSP_RESPONSE; 176typedef struct ocsp_response_st OCSP_RESPONSE;
177typedef struct ocsp_responder_id_st OCSP_RESPID; 177typedef struct ocsp_responder_id_st OCSP_RESPID;
178 178
179#ifdef LIBRESSL_CRYPTO_INTERNAL
180typedef struct sct_st SCT;
181typedef struct sct_ctx_st SCT_CTX;
182typedef struct ctlog_st CTLOG;
183typedef struct ctlog_store_st CTLOG_STORE;
184typedef 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 */