| Index: openssl/crypto/pem/pem_all.c
|
| ===================================================================
|
| --- openssl/crypto/pem/pem_all.c (revision 105093)
|
| +++ openssl/crypto/pem/pem_all.c (working copy)
|
| @@ -110,7 +110,6 @@
|
| */
|
|
|
| #include <stdio.h>
|
| -#undef SSLEAY_MACROS
|
| #include "cryptlib.h"
|
| #include <openssl/bio.h>
|
| #include <openssl/evp.h>
|
| @@ -194,49 +193,7 @@
|
|
|
| #endif
|
|
|
| -#ifdef OPENSSL_FIPS
|
| -
|
| -int PEM_write_bio_RSAPrivateKey(BIO *bp, RSA *x, const EVP_CIPHER *enc,
|
| - unsigned char *kstr, int klen,
|
| - pem_password_cb *cb, void *u)
|
| -{
|
| - EVP_PKEY *k;
|
| - int ret;
|
| - k = EVP_PKEY_new();
|
| - if (!k)
|
| - return 0;
|
| - EVP_PKEY_set1_RSA(k, x);
|
| -
|
| - ret = PEM_write_bio_PrivateKey(bp, k, enc, kstr, klen, cb, u);
|
| - EVP_PKEY_free(k);
|
| - return ret;
|
| -}
|
| -
|
| -#ifndef OPENSSL_NO_FP_API
|
| -int PEM_write_RSAPrivateKey(FILE *fp, RSA *x, const EVP_CIPHER *enc,
|
| - unsigned char *kstr, int klen,
|
| - pem_password_cb *cb, void *u)
|
| -{
|
| - EVP_PKEY *k;
|
| - int ret;
|
| - k = EVP_PKEY_new();
|
| - if (!k)
|
| - return 0;
|
| -
|
| - EVP_PKEY_set1_RSA(k, x);
|
| -
|
| - ret = PEM_write_PrivateKey(fp, k, enc, kstr, klen, cb, u);
|
| - EVP_PKEY_free(k);
|
| - return ret;
|
| -}
|
| -#endif
|
| -
|
| -#else
|
| -
|
| IMPLEMENT_PEM_write_cb_const(RSAPrivateKey, RSA, PEM_STRING_RSA, RSAPrivateKey)
|
| -
|
| -#endif
|
| -
|
| IMPLEMENT_PEM_rw_const(RSAPublicKey, RSA, PEM_STRING_RSA_PUBLIC, RSAPublicKey)
|
| IMPLEMENT_PEM_rw(RSA_PUBKEY, RSA, PEM_STRING_PUBLIC, RSA_PUBKEY)
|
|
|
| @@ -263,50 +220,10 @@
|
| {
|
| EVP_PKEY *pktmp;
|
| pktmp = PEM_read_bio_PrivateKey(bp, NULL, cb, u);
|
| - return pkey_get_dsa(pktmp, dsa);
|
| + return pkey_get_dsa(pktmp, dsa); /* will free pktmp */
|
| }
|
|
|
| -#ifdef OPENSSL_FIPS
|
| -
|
| -int PEM_write_bio_DSAPrivateKey(BIO *bp, DSA *x, const EVP_CIPHER *enc,
|
| - unsigned char *kstr, int klen,
|
| - pem_password_cb *cb, void *u)
|
| -{
|
| - EVP_PKEY *k;
|
| - int ret;
|
| - k = EVP_PKEY_new();
|
| - if (!k)
|
| - return 0;
|
| - EVP_PKEY_set1_DSA(k, x);
|
| -
|
| - ret = PEM_write_bio_PrivateKey(bp, k, enc, kstr, klen, cb, u);
|
| - EVP_PKEY_free(k);
|
| - return ret;
|
| -}
|
| -
|
| -#ifndef OPENSSL_NO_FP_API
|
| -int PEM_write_DSAPrivateKey(FILE *fp, DSA *x, const EVP_CIPHER *enc,
|
| - unsigned char *kstr, int klen,
|
| - pem_password_cb *cb, void *u)
|
| -{
|
| - EVP_PKEY *k;
|
| - int ret;
|
| - k = EVP_PKEY_new();
|
| - if (!k)
|
| - return 0;
|
| - EVP_PKEY_set1_DSA(k, x);
|
| - ret = PEM_write_PrivateKey(fp, k, enc, kstr, klen, cb, u);
|
| - EVP_PKEY_free(k);
|
| - return ret;
|
| -}
|
| -#endif
|
| -
|
| -#else
|
| -
|
| IMPLEMENT_PEM_write_cb_const(DSAPrivateKey, DSA, PEM_STRING_DSA, DSAPrivateKey)
|
| -
|
| -#endif
|
| -
|
| IMPLEMENT_PEM_rw(DSA_PUBKEY, DSA, PEM_STRING_PUBLIC, DSA_PUBKEY)
|
|
|
| #ifndef OPENSSL_NO_FP_API
|
| @@ -316,7 +233,7 @@
|
| {
|
| EVP_PKEY *pktmp;
|
| pktmp = PEM_read_PrivateKey(fp, NULL, cb, u);
|
| - return pkey_get_dsa(pktmp, dsa);
|
| + return pkey_get_dsa(pktmp, dsa); /* will free pktmp */
|
| }
|
|
|
| #endif
|
| @@ -347,54 +264,13 @@
|
| {
|
| EVP_PKEY *pktmp;
|
| pktmp = PEM_read_bio_PrivateKey(bp, NULL, cb, u);
|
| - return pkey_get_eckey(pktmp, key);
|
| + return pkey_get_eckey(pktmp, key); /* will free pktmp */
|
| }
|
|
|
| IMPLEMENT_PEM_rw_const(ECPKParameters, EC_GROUP, PEM_STRING_ECPARAMETERS, ECPKParameters)
|
|
|
| -
|
| -
|
| -#ifdef OPENSSL_FIPS
|
| -
|
| -int PEM_write_bio_ECPrivateKey(BIO *bp, EC_KEY *x, const EVP_CIPHER *enc,
|
| - unsigned char *kstr, int klen,
|
| - pem_password_cb *cb, void *u)
|
| -{
|
| - EVP_PKEY *k;
|
| - int ret;
|
| - k = EVP_PKEY_new();
|
| - if (!k)
|
| - return 0;
|
| - EVP_PKEY_set1_EC_KEY(k, x);
|
| -
|
| - ret = PEM_write_bio_PrivateKey(bp, k, enc, kstr, klen, cb, u);
|
| - EVP_PKEY_free(k);
|
| - return ret;
|
| -}
|
| -
|
| -#ifndef OPENSSL_NO_FP_API
|
| -int PEM_write_ECPrivateKey(FILE *fp, EC_KEY *x, const EVP_CIPHER *enc,
|
| - unsigned char *kstr, int klen,
|
| - pem_password_cb *cb, void *u)
|
| -{
|
| - EVP_PKEY *k;
|
| - int ret;
|
| - k = EVP_PKEY_new();
|
| - if (!k)
|
| - return 0;
|
| - EVP_PKEY_set1_EC_KEY(k, x);
|
| - ret = PEM_write_PrivateKey(fp, k, enc, kstr, klen, cb, u);
|
| - EVP_PKEY_free(k);
|
| - return ret;
|
| -}
|
| -#endif
|
| -
|
| -#else
|
| -
|
| IMPLEMENT_PEM_write_cb(ECPrivateKey, EC_KEY, PEM_STRING_ECPRIVATEKEY, ECPrivateKey)
|
|
|
| -#endif
|
| -
|
| IMPLEMENT_PEM_rw(EC_PUBKEY, EC_KEY, PEM_STRING_PUBLIC, EC_PUBKEY)
|
|
|
| #ifndef OPENSSL_NO_FP_API
|
| @@ -404,7 +280,7 @@
|
| {
|
| EVP_PKEY *pktmp;
|
| pktmp = PEM_read_PrivateKey(fp, NULL, cb, u);
|
| - return pkey_get_eckey(pktmp, eckey);
|
| + return pkey_get_eckey(pktmp, eckey); /* will free pktmp */
|
| }
|
|
|
| #endif
|
| @@ -417,66 +293,4 @@
|
|
|
| #endif
|
|
|
| -
|
| -/* The PrivateKey case is not that straightforward.
|
| - * IMPLEMENT_PEM_rw_cb(PrivateKey, EVP_PKEY, PEM_STRING_EVP_PKEY, PrivateKey)
|
| - * does not work, RSA and DSA keys have specific strings.
|
| - * (When reading, parameter PEM_STRING_EVP_PKEY is a wildcard for anything
|
| - * appropriate.)
|
| - */
|
| -
|
| -#ifdef OPENSSL_FIPS
|
| -
|
| -static const char *pkey_str(EVP_PKEY *x)
|
| - {
|
| - switch (x->type)
|
| - {
|
| - case EVP_PKEY_RSA:
|
| - return PEM_STRING_RSA;
|
| -
|
| - case EVP_PKEY_DSA:
|
| - return PEM_STRING_DSA;
|
| -
|
| - case EVP_PKEY_EC:
|
| - return PEM_STRING_ECPRIVATEKEY;
|
| -
|
| - default:
|
| - return NULL;
|
| - }
|
| - }
|
| -
|
| -
|
| -int PEM_write_bio_PrivateKey(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc,
|
| - unsigned char *kstr, int klen,
|
| - pem_password_cb *cb, void *u)
|
| - {
|
| - if (FIPS_mode())
|
| - return PEM_write_bio_PKCS8PrivateKey(bp, x, enc,
|
| - (char *)kstr, klen, cb, u);
|
| - else
|
| - return PEM_ASN1_write_bio((i2d_of_void *)i2d_PrivateKey,
|
| - pkey_str(x), bp,(char *)x,enc,kstr,klen,cb,u);
|
| - }
|
| -
|
| -#ifndef OPENSSL_NO_FP_API
|
| -int PEM_write_PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc,
|
| - unsigned char *kstr, int klen,
|
| - pem_password_cb *cb, void *u)
|
| - {
|
| - if (FIPS_mode())
|
| - return PEM_write_PKCS8PrivateKey(fp, x, enc,
|
| - (char *)kstr, klen, cb, u);
|
| - else
|
| - return PEM_ASN1_write((i2d_of_void *)i2d_PrivateKey,
|
| - pkey_str(x), fp,(char *)x,enc,kstr,klen,cb,u);
|
| - }
|
| -#endif
|
| -
|
| -#else
|
| -IMPLEMENT_PEM_write_cb(PrivateKey, EVP_PKEY, ((x->type == EVP_PKEY_DSA)?PEM_STRING_DSA:\
|
| - (x->type == EVP_PKEY_RSA)?PEM_STRING_RSA:PEM_STRING_ECPRIVATEKEY), PrivateKey)
|
| -
|
| -#endif
|
| -
|
| IMPLEMENT_PEM_rw(PUBKEY, EVP_PKEY, PEM_STRING_PUBLIC, PUBKEY)
|
| -
|
|
|