summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjsing <>2018-02-20 17:09:20 +0000
committerjsing <>2018-02-20 17:09:20 +0000
commitffdc588fe5b7d401c01aa2c6d688fd0eb0c26cb3 (patch)
tree2706e0b887a1b5476913f524a8d358383daf2462 /src
parent3c06749399ec9bdbbde802f1c5aef85cfd04c42e (diff)
downloadopenbsd-ffdc588fe5b7d401c01aa2c6d688fd0eb0c26cb3.tar.gz
openbsd-ffdc588fe5b7d401c01aa2c6d688fd0eb0c26cb3.tar.bz2
openbsd-ffdc588fe5b7d401c01aa2c6d688fd0eb0c26cb3.zip
Provide X509_NAME_get0_der().
From OpenSSL.
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/Symbols.list1
-rw-r--r--src/lib/libcrypto/asn1/x_name.c15
-rw-r--r--src/lib/libcrypto/x509/x509.h3
3 files changed, 17 insertions, 2 deletions
diff --git a/src/lib/libcrypto/Symbols.list b/src/lib/libcrypto/Symbols.list
index f446e08ea7..022176264e 100644
--- a/src/lib/libcrypto/Symbols.list
+++ b/src/lib/libcrypto/Symbols.list
@@ -2695,6 +2695,7 @@ X509_NAME_digest
2695X509_NAME_dup 2695X509_NAME_dup
2696X509_NAME_entry_count 2696X509_NAME_entry_count
2697X509_NAME_free 2697X509_NAME_free
2698X509_NAME_get0_der
2698X509_NAME_get_entry 2699X509_NAME_get_entry
2699X509_NAME_get_index_by_NID 2700X509_NAME_get_index_by_NID
2700X509_NAME_get_index_by_OBJ 2701X509_NAME_get_index_by_OBJ
diff --git a/src/lib/libcrypto/asn1/x_name.c b/src/lib/libcrypto/asn1/x_name.c
index 30fef39fb7..4bf184252f 100644
--- a/src/lib/libcrypto/asn1/x_name.c
+++ b/src/lib/libcrypto/asn1/x_name.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_name.c,v 1.33 2017/01/29 17:49:22 beck Exp $ */ 1/* $OpenBSD: x_name.c,v 1.34 2018/02/20 17:09:20 jsing 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 *
@@ -640,3 +640,16 @@ X509_NAME_set(X509_NAME **xn, X509_NAME *name)
640 } 640 }
641 return (*xn != NULL); 641 return (*xn != NULL);
642} 642}
643
644int
645X509_NAME_get0_der(X509_NAME *nm, const unsigned char **pder, size_t *pderlen)
646{
647 /* Make sure encoding is valid. */
648 if (i2d_X509_NAME(nm, NULL) <= 0)
649 return 0;
650 if (pder != NULL)
651 *pder = (unsigned char *)nm->bytes->data;
652 if (pderlen != NULL)
653 *pderlen = nm->bytes->length;
654 return 1;
655}
diff --git a/src/lib/libcrypto/x509/x509.h b/src/lib/libcrypto/x509/x509.h
index 26e71ee40e..6f0f5f4dec 100644
--- a/src/lib/libcrypto/x509/x509.h
+++ b/src/lib/libcrypto/x509/x509.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: x509.h,v 1.31 2018/02/20 17:06:19 jsing Exp $ */ 1/* $OpenBSD: x509.h,v 1.32 2018/02/20 17:09:20 jsing 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 *
@@ -758,6 +758,7 @@ void X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md);
758int X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b); 758int X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b);
759 759
760X509_NAME *X509_NAME_dup(X509_NAME *xn); 760X509_NAME *X509_NAME_dup(X509_NAME *xn);
761int X509_NAME_get0_der(X509_NAME *nm, const unsigned char **pder, size_t *pderlen);
761X509_NAME_ENTRY *X509_NAME_ENTRY_dup(X509_NAME_ENTRY *ne); 762X509_NAME_ENTRY *X509_NAME_ENTRY_dup(X509_NAME_ENTRY *ne);
762 763
763int X509_cmp_time(const ASN1_TIME *s, time_t *t); 764int X509_cmp_time(const ASN1_TIME *s, time_t *t);