diff options
Diffstat (limited to 'src/lib/libcrypto/asn1/p5_pbev2.c')
| -rw-r--r-- | src/lib/libcrypto/asn1/p5_pbev2.c | 78 |
1 files changed, 67 insertions, 11 deletions
diff --git a/src/lib/libcrypto/asn1/p5_pbev2.c b/src/lib/libcrypto/asn1/p5_pbev2.c index 1189e7e26b..f967f25d3d 100644 --- a/src/lib/libcrypto/asn1/p5_pbev2.c +++ b/src/lib/libcrypto/asn1/p5_pbev2.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: p5_pbev2.c,v 1.19 2015/02/09 15:05:59 jsing Exp $ */ | 1 | /* $OpenBSD: p5_pbev2.c,v 1.20 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-2004. | 3 | * project 1999-2004. |
| 4 | */ | 4 | */ |
| @@ -66,10 +66,32 @@ | |||
| 66 | 66 | ||
| 67 | /* PKCS#5 v2.0 password based encryption structures */ | 67 | /* PKCS#5 v2.0 password based encryption structures */ |
| 68 | 68 | ||
| 69 | ASN1_SEQUENCE(PBE2PARAM) = { | 69 | static const ASN1_TEMPLATE PBE2PARAM_seq_tt[] = { |
| 70 | ASN1_SIMPLE(PBE2PARAM, keyfunc, X509_ALGOR), | 70 | { |
| 71 | ASN1_SIMPLE(PBE2PARAM, encryption, X509_ALGOR) | 71 | .flags = 0, |
| 72 | } ASN1_SEQUENCE_END(PBE2PARAM) | 72 | .tag = 0, |
| 73 | .offset = offsetof(PBE2PARAM, keyfunc), | ||
| 74 | .field_name = "keyfunc", | ||
| 75 | .item = &X509_ALGOR_it, | ||
| 76 | }, | ||
| 77 | { | ||
| 78 | .flags = 0, | ||
| 79 | .tag = 0, | ||
| 80 | .offset = offsetof(PBE2PARAM, encryption), | ||
| 81 | .field_name = "encryption", | ||
| 82 | .item = &X509_ALGOR_it, | ||
| 83 | }, | ||
| 84 | }; | ||
| 85 | |||
| 86 | const ASN1_ITEM PBE2PARAM_it = { | ||
| 87 | .itype = ASN1_ITYPE_SEQUENCE, | ||
| 88 | .utype = V_ASN1_SEQUENCE, | ||
| 89 | .templates = PBE2PARAM_seq_tt, | ||
| 90 | .tcount = sizeof(PBE2PARAM_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
| 91 | .funcs = NULL, | ||
| 92 | .size = sizeof(PBE2PARAM), | ||
| 93 | .sname = "PBE2PARAM", | ||
| 94 | }; | ||
| 73 | 95 | ||
| 74 | 96 | ||
| 75 | PBE2PARAM * | 97 | PBE2PARAM * |
| @@ -97,12 +119,46 @@ PBE2PARAM_free(PBE2PARAM *a) | |||
| 97 | ASN1_item_free((ASN1_VALUE *)a, &PBE2PARAM_it); | 119 | ASN1_item_free((ASN1_VALUE *)a, &PBE2PARAM_it); |
| 98 | } | 120 | } |
| 99 | 121 | ||
| 100 | ASN1_SEQUENCE(PBKDF2PARAM) = { | 122 | static const ASN1_TEMPLATE PBKDF2PARAM_seq_tt[] = { |
| 101 | ASN1_SIMPLE(PBKDF2PARAM, salt, ASN1_ANY), | 123 | { |
| 102 | ASN1_SIMPLE(PBKDF2PARAM, iter, ASN1_INTEGER), | 124 | .flags = 0, |
| 103 | ASN1_OPT(PBKDF2PARAM, keylength, ASN1_INTEGER), | 125 | .tag = 0, |
| 104 | ASN1_OPT(PBKDF2PARAM, prf, X509_ALGOR) | 126 | .offset = offsetof(PBKDF2PARAM, salt), |
| 105 | } ASN1_SEQUENCE_END(PBKDF2PARAM) | 127 | .field_name = "salt", |
| 128 | .item = &ASN1_ANY_it, | ||
| 129 | }, | ||
| 130 | { | ||
| 131 | .flags = 0, | ||
| 132 | .tag = 0, | ||
| 133 | .offset = offsetof(PBKDF2PARAM, iter), | ||
| 134 | .field_name = "iter", | ||
| 135 | .item = &ASN1_INTEGER_it, | ||
| 136 | }, | ||
| 137 | { | ||
| 138 | .flags = ASN1_TFLG_OPTIONAL, | ||
| 139 | .tag = 0, | ||
| 140 | .offset = offsetof(PBKDF2PARAM, keylength), | ||
| 141 | .field_name = "keylength", | ||
| 142 | .item = &ASN1_INTEGER_it, | ||
| 143 | }, | ||
| 144 | { | ||
| 145 | .flags = ASN1_TFLG_OPTIONAL, | ||
| 146 | .tag = 0, | ||
| 147 | .offset = offsetof(PBKDF2PARAM, prf), | ||
| 148 | .field_name = "prf", | ||
| 149 | .item = &X509_ALGOR_it, | ||
| 150 | }, | ||
| 151 | }; | ||
| 152 | |||
| 153 | const ASN1_ITEM PBKDF2PARAM_it = { | ||
| 154 | .itype = ASN1_ITYPE_SEQUENCE, | ||
| 155 | .utype = V_ASN1_SEQUENCE, | ||
| 156 | .templates = PBKDF2PARAM_seq_tt, | ||
| 157 | .tcount = sizeof(PBKDF2PARAM_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
| 158 | .funcs = NULL, | ||
| 159 | .size = sizeof(PBKDF2PARAM), | ||
| 160 | .sname = "PBKDF2PARAM", | ||
| 161 | }; | ||
| 106 | 162 | ||
| 107 | 163 | ||
| 108 | PBKDF2PARAM * | 164 | PBKDF2PARAM * |
