diff options
author | jsing <> | 2019-08-12 18:13:13 +0000 |
---|---|---|
committer | jsing <> | 2019-08-12 18:13:13 +0000 |
commit | f9a54060a744c5374581649e5ff3f5e7b490895d (patch) | |
tree | 9b1116ea69f3490cfa1883bb95300f4a427620d3 | |
parent | 33f7f1fea5b104635feae22d98fb2e2f66e2fbaa (diff) | |
download | openbsd-f9a54060a744c5374581649e5ff3f5e7b490895d.tar.gz openbsd-f9a54060a744c5374581649e5ff3f5e7b490895d.tar.bz2 openbsd-f9a54060a744c5374581649e5ff3f5e7b490895d.zip |
Provide a local version of X509_get0_subject_key_id()
It seems that the CMS code is currently the only code in existence that
uses this function.
-rw-r--r-- | src/lib/libcrypto/cms/cms_lib.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/lib/libcrypto/cms/cms_lib.c b/src/lib/libcrypto/cms/cms_lib.c index 389bc3d06e..b6580dd6f5 100644 --- a/src/lib/libcrypto/cms/cms_lib.c +++ b/src/lib/libcrypto/cms/cms_lib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: cms_lib.c,v 1.13 2019/08/11 11:04:18 jsing Exp $ */ | 1 | /* $OpenBSD: cms_lib.c,v 1.14 2019/08/12 18:13:13 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 3 | * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
4 | * project. | 4 | * project. |
@@ -642,6 +642,14 @@ CMS_get1_crls(CMS_ContentInfo *cms) | |||
642 | return crls; | 642 | return crls; |
643 | } | 643 | } |
644 | 644 | ||
645 | static const ASN1_OCTET_STRING * | ||
646 | cms_X509_get0_subject_key_id(X509 *x) | ||
647 | { | ||
648 | /* Call for side-effect of computing hash and caching extensions */ | ||
649 | X509_check_purpose(x, -1, -1); | ||
650 | return x->skid; | ||
651 | } | ||
652 | |||
645 | int | 653 | int |
646 | cms_ias_cert_cmp(CMS_IssuerAndSerialNumber *ias, X509 *cert) | 654 | cms_ias_cert_cmp(CMS_IssuerAndSerialNumber *ias, X509 *cert) |
647 | { | 655 | { |
@@ -657,7 +665,7 @@ cms_ias_cert_cmp(CMS_IssuerAndSerialNumber *ias, X509 *cert) | |||
657 | int | 665 | int |
658 | cms_keyid_cert_cmp(ASN1_OCTET_STRING *keyid, X509 *cert) | 666 | cms_keyid_cert_cmp(ASN1_OCTET_STRING *keyid, X509 *cert) |
659 | { | 667 | { |
660 | const ASN1_OCTET_STRING *cert_keyid = X509_get0_subject_key_id(cert); | 668 | const ASN1_OCTET_STRING *cert_keyid = cms_X509_get0_subject_key_id(cert); |
661 | 669 | ||
662 | if (cert_keyid == NULL) | 670 | if (cert_keyid == NULL) |
663 | return -1; | 671 | return -1; |
@@ -695,7 +703,7 @@ cms_set1_keyid(ASN1_OCTET_STRING **pkeyid, X509 *cert) | |||
695 | ASN1_OCTET_STRING *keyid = NULL; | 703 | ASN1_OCTET_STRING *keyid = NULL; |
696 | const ASN1_OCTET_STRING *cert_keyid; | 704 | const ASN1_OCTET_STRING *cert_keyid; |
697 | 705 | ||
698 | cert_keyid = X509_get0_subject_key_id(cert); | 706 | cert_keyid = cms_X509_get0_subject_key_id(cert); |
699 | if (cert_keyid == NULL) { | 707 | if (cert_keyid == NULL) { |
700 | CMSerror(CMS_R_CERTIFICATE_HAS_NO_KEYID); | 708 | CMSerror(CMS_R_CERTIFICATE_HAS_NO_KEYID); |
701 | return 0; | 709 | return 0; |