diff options
Diffstat (limited to 'src/lib/libcrypto/asn1/p8_pkey.c')
| -rw-r--r-- | src/lib/libcrypto/asn1/p8_pkey.c | 56 |
1 files changed, 49 insertions, 7 deletions
diff --git a/src/lib/libcrypto/asn1/p8_pkey.c b/src/lib/libcrypto/asn1/p8_pkey.c index f8688ebc17..486aa8d42c 100644 --- a/src/lib/libcrypto/asn1/p8_pkey.c +++ b/src/lib/libcrypto/asn1/p8_pkey.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: p8_pkey.c,v 1.13 2015/02/09 15:05:59 jsing Exp $ */ | 1 | /* $OpenBSD: p8_pkey.c,v 1.14 2015/02/11 03:39:51 jsing Exp $ */ |
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
| 3 | * project 1999. | 3 | * project 1999. |
| 4 | */ | 4 | */ |
| @@ -75,12 +75,54 @@ pkey_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg) | |||
| 75 | return 1; | 75 | return 1; |
| 76 | } | 76 | } |
| 77 | 77 | ||
| 78 | ASN1_SEQUENCE_cb(PKCS8_PRIV_KEY_INFO, pkey_cb) = { | 78 | static const ASN1_AUX PKCS8_PRIV_KEY_INFO_aux = { |
| 79 | ASN1_SIMPLE(PKCS8_PRIV_KEY_INFO, version, ASN1_INTEGER), | 79 | .app_data = NULL, |
| 80 | ASN1_SIMPLE(PKCS8_PRIV_KEY_INFO, pkeyalg, X509_ALGOR), | 80 | .flags = 0, |
| 81 | ASN1_SIMPLE(PKCS8_PRIV_KEY_INFO, pkey, ASN1_ANY), | 81 | .ref_offset = 0, |
| 82 | ASN1_IMP_SET_OF_OPT(PKCS8_PRIV_KEY_INFO, attributes, X509_ATTRIBUTE, 0) | 82 | .ref_lock = 0, |
| 83 | } ASN1_SEQUENCE_END_cb(PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO) | 83 | .asn1_cb = pkey_cb, |
| 84 | .enc_offset = 0, | ||
| 85 | }; | ||
| 86 | static const ASN1_TEMPLATE PKCS8_PRIV_KEY_INFO_seq_tt[] = { | ||
| 87 | { | ||
| 88 | .flags = 0, | ||
| 89 | .tag = 0, | ||
| 90 | .offset = offsetof(PKCS8_PRIV_KEY_INFO, version), | ||
| 91 | .field_name = "version", | ||
| 92 | .item = &ASN1_INTEGER_it, | ||
| 93 | }, | ||
| 94 | { | ||
| 95 | .flags = 0, | ||
| 96 | .tag = 0, | ||
| 97 | .offset = offsetof(PKCS8_PRIV_KEY_INFO, pkeyalg), | ||
| 98 | .field_name = "pkeyalg", | ||
| 99 | .item = &X509_ALGOR_it, | ||
| 100 | }, | ||
| 101 | { | ||
| 102 | .flags = 0, | ||
| 103 | .tag = 0, | ||
| 104 | .offset = offsetof(PKCS8_PRIV_KEY_INFO, pkey), | ||
| 105 | .field_name = "pkey", | ||
| 106 | .item = &ASN1_ANY_it, | ||
| 107 | }, | ||
| 108 | { | ||
| 109 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_SET_OF | ASN1_TFLG_OPTIONAL, | ||
| 110 | .tag = 0, | ||
| 111 | .offset = offsetof(PKCS8_PRIV_KEY_INFO, attributes), | ||
| 112 | .field_name = "attributes", | ||
| 113 | .item = &X509_ATTRIBUTE_it, | ||
| 114 | }, | ||
| 115 | }; | ||
| 116 | |||
| 117 | const ASN1_ITEM PKCS8_PRIV_KEY_INFO_it = { | ||
| 118 | .itype = ASN1_ITYPE_SEQUENCE, | ||
| 119 | .utype = V_ASN1_SEQUENCE, | ||
| 120 | .templates = PKCS8_PRIV_KEY_INFO_seq_tt, | ||
| 121 | .tcount = sizeof(PKCS8_PRIV_KEY_INFO_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
| 122 | .funcs = &PKCS8_PRIV_KEY_INFO_aux, | ||
| 123 | .size = sizeof(PKCS8_PRIV_KEY_INFO), | ||
| 124 | .sname = "PKCS8_PRIV_KEY_INFO", | ||
| 125 | }; | ||
| 84 | 126 | ||
| 85 | 127 | ||
| 86 | PKCS8_PRIV_KEY_INFO * | 128 | PKCS8_PRIV_KEY_INFO * |
