diff options
Diffstat (limited to 'src/lib/libcrypto/x509/x509spki.c')
-rw-r--r-- | src/lib/libcrypto/x509/x509spki.c | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/src/lib/libcrypto/x509/x509spki.c b/src/lib/libcrypto/x509/x509spki.c index 9f0fbd39e3..b5f67b5a97 100644 --- a/src/lib/libcrypto/x509/x509spki.c +++ b/src/lib/libcrypto/x509/x509spki.c | |||
@@ -10,7 +10,7 @@ | |||
10 | * are met: | 10 | * are met: |
11 | * | 11 | * |
12 | * 1. Redistributions of source code must retain the above copyright | 12 | * 1. Redistributions of source code must retain the above copyright |
13 | * notice, this list of conditions and the following disclaimer. | 13 | * notice, this list of conditions and the following disclaimer. |
14 | * | 14 | * |
15 | * 2. Redistributions in binary form must reproduce the above copyright | 15 | * 2. Redistributions in binary form must reproduce the above copyright |
16 | * notice, this list of conditions and the following disclaimer in | 16 | * notice, this list of conditions and the following disclaimer in |
@@ -60,36 +60,42 @@ | |||
60 | #include "cryptlib.h" | 60 | #include "cryptlib.h" |
61 | #include <openssl/x509.h> | 61 | #include <openssl/x509.h> |
62 | 62 | ||
63 | int NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *x, EVP_PKEY *pkey) | 63 | int |
64 | NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *x, EVP_PKEY *pkey) | ||
64 | { | 65 | { |
65 | if ((x == NULL) || (x->spkac == NULL)) return(0); | 66 | if ((x == NULL) || (x->spkac == NULL)) |
66 | return(X509_PUBKEY_set(&(x->spkac->pubkey),pkey)); | 67 | return (0); |
68 | return (X509_PUBKEY_set(&(x->spkac->pubkey), pkey)); | ||
67 | } | 69 | } |
68 | 70 | ||
69 | EVP_PKEY *NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *x) | 71 | EVP_PKEY * |
72 | NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *x) | ||
70 | { | 73 | { |
71 | if ((x == NULL) || (x->spkac == NULL)) | 74 | if ((x == NULL) || (x->spkac == NULL)) |
72 | return(NULL); | 75 | return (NULL); |
73 | return(X509_PUBKEY_get(x->spkac->pubkey)); | 76 | return (X509_PUBKEY_get(x->spkac->pubkey)); |
74 | } | 77 | } |
75 | 78 | ||
76 | /* Load a Netscape SPKI from a base64 encoded string */ | 79 | /* Load a Netscape SPKI from a base64 encoded string */ |
77 | 80 | ||
78 | NETSCAPE_SPKI * NETSCAPE_SPKI_b64_decode(const char *str, int len) | 81 | NETSCAPE_SPKI * |
82 | NETSCAPE_SPKI_b64_decode(const char *str, int len) | ||
79 | { | 83 | { |
80 | unsigned char *spki_der; | 84 | unsigned char *spki_der; |
81 | const unsigned char *p; | 85 | const unsigned char *p; |
82 | int spki_len; | 86 | int spki_len; |
83 | NETSCAPE_SPKI *spki; | 87 | NETSCAPE_SPKI *spki; |
84 | if(len <= 0) len = strlen(str); | 88 | |
89 | if (len <= 0) | ||
90 | len = strlen(str); | ||
85 | if (!(spki_der = malloc(len + 1))) { | 91 | if (!(spki_der = malloc(len + 1))) { |
86 | X509err(X509_F_NETSCAPE_SPKI_B64_DECODE, ERR_R_MALLOC_FAILURE); | 92 | X509err(X509_F_NETSCAPE_SPKI_B64_DECODE, ERR_R_MALLOC_FAILURE); |
87 | return NULL; | 93 | return NULL; |
88 | } | 94 | } |
89 | spki_len = EVP_DecodeBlock(spki_der, (const unsigned char *)str, len); | 95 | spki_len = EVP_DecodeBlock(spki_der, (const unsigned char *)str, len); |
90 | if(spki_len < 0) { | 96 | if (spki_len < 0) { |
91 | X509err(X509_F_NETSCAPE_SPKI_B64_DECODE, | 97 | X509err(X509_F_NETSCAPE_SPKI_B64_DECODE, |
92 | X509_R_BASE64_DECODE_ERROR); | 98 | X509_R_BASE64_DECODE_ERROR); |
93 | free(spki_der); | 99 | free(spki_der); |
94 | return NULL; | 100 | return NULL; |
95 | } | 101 | } |
@@ -101,7 +107,8 @@ NETSCAPE_SPKI * NETSCAPE_SPKI_b64_decode(const char *str, int len) | |||
101 | 107 | ||
102 | /* Generate a base64 encoded string from an SPKI */ | 108 | /* Generate a base64 encoded string from an SPKI */ |
103 | 109 | ||
104 | char * NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *spki) | 110 | char * |
111 | NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *spki) | ||
105 | { | 112 | { |
106 | unsigned char *der_spki, *p; | 113 | unsigned char *der_spki, *p; |
107 | char *b64_str; | 114 | char *b64_str; |
@@ -109,7 +116,7 @@ char * NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *spki) | |||
109 | der_len = i2d_NETSCAPE_SPKI(spki, NULL); | 116 | der_len = i2d_NETSCAPE_SPKI(spki, NULL); |
110 | der_spki = malloc(der_len); | 117 | der_spki = malloc(der_len); |
111 | b64_str = malloc(der_len * 2); | 118 | b64_str = malloc(der_len * 2); |
112 | if(!der_spki || !b64_str) { | 119 | if (!der_spki || !b64_str) { |
113 | X509err(X509_F_NETSCAPE_SPKI_B64_ENCODE, ERR_R_MALLOC_FAILURE); | 120 | X509err(X509_F_NETSCAPE_SPKI_B64_ENCODE, ERR_R_MALLOC_FAILURE); |
114 | free(der_spki); | 121 | free(der_spki); |
115 | free(b64_str); | 122 | free(b64_str); |