diff options
Diffstat (limited to 'src/lib/libcrypto/asn1/p8_pkey.c')
-rw-r--r-- | src/lib/libcrypto/asn1/p8_pkey.c | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/src/lib/libcrypto/asn1/p8_pkey.c b/src/lib/libcrypto/asn1/p8_pkey.c index 9d26cf51ec..c95d7e55a0 100644 --- a/src/lib/libcrypto/asn1/p8_pkey.c +++ b/src/lib/libcrypto/asn1/p8_pkey.c | |||
@@ -90,13 +90,11 @@ int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj, | |||
90 | unsigned char *penc, int penclen) | 90 | unsigned char *penc, int penclen) |
91 | { | 91 | { |
92 | unsigned char **ppenc = NULL; | 92 | unsigned char **ppenc = NULL; |
93 | if (version >= 0) | 93 | if (version >= 0) { |
94 | { | ||
95 | if (!ASN1_INTEGER_set(priv->version, version)) | 94 | if (!ASN1_INTEGER_set(priv->version, version)) |
96 | return 0; | 95 | return 0; |
97 | } | 96 | } |
98 | if (penc) | 97 | if (penc) { |
99 | { | ||
100 | int pmtype; | 98 | int pmtype; |
101 | ASN1_OCTET_STRING *oct; | 99 | ASN1_OCTET_STRING *oct; |
102 | oct = ASN1_OCTET_STRING_new(); | 100 | oct = ASN1_OCTET_STRING_new(); |
@@ -111,8 +109,7 @@ int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj, | |||
111 | pmtype = V_ASN1_OCTET_STRING; | 109 | pmtype = V_ASN1_OCTET_STRING; |
112 | ASN1_TYPE_set(priv->pkey, pmtype, oct); | 110 | ASN1_TYPE_set(priv->pkey, pmtype, oct); |
113 | } | 111 | } |
114 | if (!X509_ALGOR_set0(priv->pkeyalg, aobj, ptype, pval)) | 112 | if (!X509_ALGOR_set0(priv->pkeyalg, aobj, ptype, pval)) { |
115 | { | ||
116 | /* If call fails do not swallow 'enc' */ | 113 | /* If call fails do not swallow 'enc' */ |
117 | if (ppenc) | 114 | if (ppenc) |
118 | *ppenc = NULL; | 115 | *ppenc = NULL; |
@@ -128,20 +125,15 @@ int PKCS8_pkey_get0(ASN1_OBJECT **ppkalg, | |||
128 | { | 125 | { |
129 | if (ppkalg) | 126 | if (ppkalg) |
130 | *ppkalg = p8->pkeyalg->algorithm; | 127 | *ppkalg = p8->pkeyalg->algorithm; |
131 | if(p8->pkey->type == V_ASN1_OCTET_STRING) | 128 | if(p8->pkey->type == V_ASN1_OCTET_STRING) { |
132 | { | ||
133 | p8->broken = PKCS8_OK; | 129 | p8->broken = PKCS8_OK; |
134 | if (pk) | 130 | if (pk) { |
135 | { | ||
136 | *pk = p8->pkey->value.octet_string->data; | 131 | *pk = p8->pkey->value.octet_string->data; |
137 | *ppklen = p8->pkey->value.octet_string->length; | 132 | *ppklen = p8->pkey->value.octet_string->length; |
138 | } | 133 | } |
139 | } | 134 | } else if (p8->pkey->type == V_ASN1_SEQUENCE) { |
140 | else if (p8->pkey->type == V_ASN1_SEQUENCE) | ||
141 | { | ||
142 | p8->broken = PKCS8_NO_OCTET; | 135 | p8->broken = PKCS8_NO_OCTET; |
143 | if (pk) | 136 | if (pk) { |
144 | { | ||
145 | *pk = p8->pkey->value.sequence->data; | 137 | *pk = p8->pkey->value.sequence->data; |
146 | *ppklen = p8->pkey->value.sequence->length; | 138 | *ppklen = p8->pkey->value.sequence->length; |
147 | } | 139 | } |