提交 245c6bc3 编写于 作者: D Dr. Stephen Henson

Constify private key decode.

Reviewed-by: NRichard Levitte <levitte@openssl.org>
上级 ac4e2577
...@@ -324,7 +324,7 @@ void EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth, ...@@ -324,7 +324,7 @@ void EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth,
void EVP_PKEY_asn1_set_private(EVP_PKEY_ASN1_METHOD *ameth, void EVP_PKEY_asn1_set_private(EVP_PKEY_ASN1_METHOD *ameth,
int (*priv_decode) (EVP_PKEY *pk, int (*priv_decode) (EVP_PKEY *pk,
PKCS8_PRIV_KEY_INFO const PKCS8_PRIV_KEY_INFO
*p8inf), *p8inf),
int (*priv_encode) (PKCS8_PRIV_KEY_INFO *p8, int (*priv_encode) (PKCS8_PRIV_KEY_INFO *p8,
const EVP_PKEY *pk), const EVP_PKEY *pk),
......
...@@ -50,9 +50,9 @@ int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj, ...@@ -50,9 +50,9 @@ int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj,
return 1; return 1;
} }
int PKCS8_pkey_get0(ASN1_OBJECT **ppkalg, int PKCS8_pkey_get0(const ASN1_OBJECT **ppkalg,
const unsigned char **pk, int *ppklen, const unsigned char **pk, int *ppklen,
X509_ALGOR **pa, PKCS8_PRIV_KEY_INFO *p8) const X509_ALGOR **pa, const PKCS8_PRIV_KEY_INFO *p8)
{ {
if (ppkalg) if (ppkalg)
*ppkalg = p8->pkeyalg->algorithm; *ppkalg = p8->pkeyalg->algorithm;
......
...@@ -147,14 +147,14 @@ static int dh_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey) ...@@ -147,14 +147,14 @@ static int dh_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey)
* explicitly included and the pubkey must be recalculated. * explicitly included and the pubkey must be recalculated.
*/ */
static int dh_priv_decode(EVP_PKEY *pkey, PKCS8_PRIV_KEY_INFO *p8) static int dh_priv_decode(EVP_PKEY *pkey, const PKCS8_PRIV_KEY_INFO *p8)
{ {
const unsigned char *p, *pm; const unsigned char *p, *pm;
int pklen, pmlen; int pklen, pmlen;
int ptype; int ptype;
const void *pval; const void *pval;
const ASN1_STRING *pstr; const ASN1_STRING *pstr;
X509_ALGOR *palg; const X509_ALGOR *palg;
ASN1_INTEGER *privkey = NULL; ASN1_INTEGER *privkey = NULL;
DH *dh = NULL; DH *dh = NULL;
......
...@@ -130,14 +130,14 @@ static int dsa_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey) ...@@ -130,14 +130,14 @@ static int dsa_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey)
* AlgorithmIdentifier the pubkey must be recalculated. * AlgorithmIdentifier the pubkey must be recalculated.
*/ */
static int dsa_priv_decode(EVP_PKEY *pkey, PKCS8_PRIV_KEY_INFO *p8) static int dsa_priv_decode(EVP_PKEY *pkey, const PKCS8_PRIV_KEY_INFO *p8)
{ {
const unsigned char *p, *pm; const unsigned char *p, *pm;
int pklen, pmlen; int pklen, pmlen;
int ptype; int ptype;
const void *pval; const void *pval;
const ASN1_STRING *pstr; const ASN1_STRING *pstr;
X509_ALGOR *palg; const X509_ALGOR *palg;
ASN1_INTEGER *privkey = NULL; ASN1_INTEGER *privkey = NULL;
BN_CTX *ctx = NULL; BN_CTX *ctx = NULL;
......
...@@ -179,13 +179,13 @@ static int eckey_pub_cmp(const EVP_PKEY *a, const EVP_PKEY *b) ...@@ -179,13 +179,13 @@ static int eckey_pub_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
return -2; return -2;
} }
static int eckey_priv_decode(EVP_PKEY *pkey, PKCS8_PRIV_KEY_INFO *p8) static int eckey_priv_decode(EVP_PKEY *pkey, const PKCS8_PRIV_KEY_INFO *p8)
{ {
const unsigned char *p = NULL; const unsigned char *p = NULL;
const void *pval; const void *pval;
int ptype, pklen; int ptype, pklen;
EC_KEY *eckey = NULL; EC_KEY *eckey = NULL;
X509_ALGOR *palg; const X509_ALGOR *palg;
if (!PKCS8_pkey_get0(NULL, &p, &pklen, &palg, p8)) if (!PKCS8_pkey_get0(NULL, &p, &pklen, &palg, p8))
return 0; return 0;
......
...@@ -32,7 +32,7 @@ typedef enum { ...@@ -32,7 +32,7 @@ typedef enum {
} ecx_key_op_t; } ecx_key_op_t;
/* Setup EVP_PKEY using public, private or generation */ /* Setup EVP_PKEY using public, private or generation */
static int ecx_key_op(EVP_PKEY *pkey, X509_ALGOR *palg, static int ecx_key_op(EVP_PKEY *pkey, const X509_ALGOR *palg,
const unsigned char *p, int plen, ecx_key_op_t op) const unsigned char *p, int plen, ecx_key_op_t op)
{ {
X25519_KEY *xkey; X25519_KEY *xkey;
...@@ -135,12 +135,12 @@ static int ecx_pub_cmp(const EVP_PKEY *a, const EVP_PKEY *b) ...@@ -135,12 +135,12 @@ static int ecx_pub_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
return !CRYPTO_memcmp(akey->pubkey, bkey->pubkey, X25519_KEYLEN); return !CRYPTO_memcmp(akey->pubkey, bkey->pubkey, X25519_KEYLEN);
} }
static int ecx_priv_decode(EVP_PKEY *pkey, PKCS8_PRIV_KEY_INFO *p8) static int ecx_priv_decode(EVP_PKEY *pkey, const PKCS8_PRIV_KEY_INFO *p8)
{ {
const unsigned char *p; const unsigned char *p;
int plen; int plen;
ASN1_OCTET_STRING *oct = NULL; ASN1_OCTET_STRING *oct = NULL;
X509_ALGOR *palg; const X509_ALGOR *palg;
int rv; int rv;
if (!PKCS8_pkey_get0(NULL, &p, &plen, &palg, p8)) if (!PKCS8_pkey_get0(NULL, &p, &plen, &palg, p8))
......
...@@ -18,10 +18,10 @@ ...@@ -18,10 +18,10 @@
/* Extract a private key from a PKCS8 structure */ /* Extract a private key from a PKCS8 structure */
EVP_PKEY *EVP_PKCS82PKEY(PKCS8_PRIV_KEY_INFO *p8) EVP_PKEY *EVP_PKCS82PKEY(const PKCS8_PRIV_KEY_INFO *p8)
{ {
EVP_PKEY *pkey = NULL; EVP_PKEY *pkey = NULL;
ASN1_OBJECT *algoid; const ASN1_OBJECT *algoid;
char obj_tmp[80]; char obj_tmp[80];
if (!PKCS8_pkey_get0(&algoid, NULL, NULL, NULL, p8)) if (!PKCS8_pkey_get0(&algoid, NULL, NULL, NULL, p8))
......
...@@ -22,7 +22,7 @@ struct evp_pkey_asn1_method_st { ...@@ -22,7 +22,7 @@ struct evp_pkey_asn1_method_st {
int (*pub_cmp) (const EVP_PKEY *a, const EVP_PKEY *b); int (*pub_cmp) (const EVP_PKEY *a, const EVP_PKEY *b);
int (*pub_print) (BIO *out, const EVP_PKEY *pkey, int indent, int (*pub_print) (BIO *out, const EVP_PKEY *pkey, int indent,
ASN1_PCTX *pctx); ASN1_PCTX *pctx);
int (*priv_decode) (EVP_PKEY *pk, PKCS8_PRIV_KEY_INFO *p8inf); int (*priv_decode) (EVP_PKEY *pk, const PKCS8_PRIV_KEY_INFO *p8inf);
int (*priv_encode) (PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pk); int (*priv_encode) (PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pk);
int (*priv_print) (BIO *out, const EVP_PKEY *pkey, int indent, int (*priv_print) (BIO *out, const EVP_PKEY *pkey, int indent,
ASN1_PCTX *pctx); ASN1_PCTX *pctx);
......
...@@ -101,7 +101,7 @@ static int rsa_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey) ...@@ -101,7 +101,7 @@ static int rsa_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)
return 1; return 1;
} }
static int rsa_priv_decode(EVP_PKEY *pkey, PKCS8_PRIV_KEY_INFO *p8) static int rsa_priv_decode(EVP_PKEY *pkey, const PKCS8_PRIV_KEY_INFO *p8)
{ {
const unsigned char *p; const unsigned char *p;
int pklen; int pklen;
......
...@@ -1068,7 +1068,7 @@ void EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth, ...@@ -1068,7 +1068,7 @@ void EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth,
int (*pkey_bits) (const EVP_PKEY *pk)); int (*pkey_bits) (const EVP_PKEY *pk));
void EVP_PKEY_asn1_set_private(EVP_PKEY_ASN1_METHOD *ameth, void EVP_PKEY_asn1_set_private(EVP_PKEY_ASN1_METHOD *ameth,
int (*priv_decode) (EVP_PKEY *pk, int (*priv_decode) (EVP_PKEY *pk,
PKCS8_PRIV_KEY_INFO const PKCS8_PRIV_KEY_INFO
*p8inf), *p8inf),
int (*priv_encode) (PKCS8_PRIV_KEY_INFO *p8, int (*priv_encode) (PKCS8_PRIV_KEY_INFO *p8,
const EVP_PKEY *pk), const EVP_PKEY *pk),
......
...@@ -961,15 +961,15 @@ X509_ALGOR *PKCS5_pbkdf2_set(int iter, unsigned char *salt, int saltlen, ...@@ -961,15 +961,15 @@ X509_ALGOR *PKCS5_pbkdf2_set(int iter, unsigned char *salt, int saltlen,
DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO)
EVP_PKEY *EVP_PKCS82PKEY(PKCS8_PRIV_KEY_INFO *p8); EVP_PKEY *EVP_PKCS82PKEY(const PKCS8_PRIV_KEY_INFO *p8);
PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(EVP_PKEY *pkey); PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(EVP_PKEY *pkey);
int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj, int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj,
int version, int ptype, void *pval, int version, int ptype, void *pval,
unsigned char *penc, int penclen); unsigned char *penc, int penclen);
int PKCS8_pkey_get0(ASN1_OBJECT **ppkalg, int PKCS8_pkey_get0(const ASN1_OBJECT **ppkalg,
const unsigned char **pk, int *ppklen, const unsigned char **pk, int *ppklen,
X509_ALGOR **pa, PKCS8_PRIV_KEY_INFO *p8); const X509_ALGOR **pa, const PKCS8_PRIV_KEY_INFO *p8);
const STACK_OF(X509_ATTRIBUTE) * const STACK_OF(X509_ATTRIBUTE) *
PKCS8_pkey_get0_attrs(const PKCS8_PRIV_KEY_INFO *p8); PKCS8_pkey_get0_attrs(const PKCS8_PRIV_KEY_INFO *p8);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册