summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/asn1/p8_pkey.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/asn1/p8_pkey.c')
-rw-r--r--src/lib/libcrypto/asn1/p8_pkey.c34
1 files changed, 17 insertions, 17 deletions
diff --git a/src/lib/libcrypto/asn1/p8_pkey.c b/src/lib/libcrypto/asn1/p8_pkey.c
index 17b68d386d..9d26cf51ec 100644
--- a/src/lib/libcrypto/asn1/p8_pkey.c
+++ b/src/lib/libcrypto/asn1/p8_pkey.c
@@ -71,7 +71,7 @@ static int pkey_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,
71 if (key->pkey->value.octet_string) 71 if (key->pkey->value.octet_string)
72 OPENSSL_cleanse(key->pkey->value.octet_string->data, 72 OPENSSL_cleanse(key->pkey->value.octet_string->data,
73 key->pkey->value.octet_string->length); 73 key->pkey->value.octet_string->length);
74 } 74}
75 return 1; 75 return 1;
76} 76}
77 77
@@ -88,15 +88,15 @@ int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj,
88 int version, 88 int version,
89 int ptype, void *pval, 89 int ptype, void *pval,
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 { 94 {
95 if (!ASN1_INTEGER_set(priv->version, version)) 95 if (!ASN1_INTEGER_set(priv->version, version))
96 return 0; 96 return 0;
97 } 97 }
98 if (penc) 98 if (penc)
99 { 99 {
100 int pmtype; 100 int pmtype;
101 ASN1_OCTET_STRING *oct; 101 ASN1_OCTET_STRING *oct;
102 oct = ASN1_OCTET_STRING_new(); 102 oct = ASN1_OCTET_STRING_new();
@@ -110,46 +110,46 @@ int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj,
110 else 110 else
111 pmtype = V_ASN1_OCTET_STRING; 111 pmtype = V_ASN1_OCTET_STRING;
112 ASN1_TYPE_set(priv->pkey, pmtype, oct); 112 ASN1_TYPE_set(priv->pkey, pmtype, oct);
113 } 113 }
114 if (!X509_ALGOR_set0(priv->pkeyalg, aobj, ptype, pval)) 114 if (!X509_ALGOR_set0(priv->pkeyalg, aobj, ptype, pval))
115 { 115 {
116 /* If call fails do not swallow 'enc' */ 116 /* If call fails do not swallow 'enc' */
117 if (ppenc) 117 if (ppenc)
118 *ppenc = NULL; 118 *ppenc = NULL;
119 return 0; 119 return 0;
120 }
121 return 1;
122 } 120 }
121 return 1;
122}
123 123
124int PKCS8_pkey_get0(ASN1_OBJECT **ppkalg, 124int PKCS8_pkey_get0(ASN1_OBJECT **ppkalg,
125 const unsigned char **pk, int *ppklen, 125 const unsigned char **pk, int *ppklen,
126 X509_ALGOR **pa, 126 X509_ALGOR **pa,
127 PKCS8_PRIV_KEY_INFO *p8) 127 PKCS8_PRIV_KEY_INFO *p8)
128 { 128{
129 if (ppkalg) 129 if (ppkalg)
130 *ppkalg = p8->pkeyalg->algorithm; 130 *ppkalg = p8->pkeyalg->algorithm;
131 if(p8->pkey->type == V_ASN1_OCTET_STRING) 131 if(p8->pkey->type == V_ASN1_OCTET_STRING)
132 { 132 {
133 p8->broken = PKCS8_OK; 133 p8->broken = PKCS8_OK;
134 if (pk) 134 if (pk)
135 { 135 {
136 *pk = p8->pkey->value.octet_string->data; 136 *pk = p8->pkey->value.octet_string->data;
137 *ppklen = p8->pkey->value.octet_string->length; 137 *ppklen = p8->pkey->value.octet_string->length;
138 }
139 } 138 }
139 }
140 else if (p8->pkey->type == V_ASN1_SEQUENCE) 140 else if (p8->pkey->type == V_ASN1_SEQUENCE)
141 { 141 {
142 p8->broken = PKCS8_NO_OCTET; 142 p8->broken = PKCS8_NO_OCTET;
143 if (pk) 143 if (pk)
144 { 144 {
145 *pk = p8->pkey->value.sequence->data; 145 *pk = p8->pkey->value.sequence->data;
146 *ppklen = p8->pkey->value.sequence->length; 146 *ppklen = p8->pkey->value.sequence->length;
147 }
148 } 147 }
148 }
149 else 149 else
150 return 0; 150 return 0;
151 if (pa) 151 if (pa)
152 *pa = p8->pkeyalg; 152 *pa = p8->pkeyalg;
153 return 1; 153 return 1;
154 } 154}
155 155