summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar default2022-09-26 18:40:46 +0200
committerGravatar default2022-09-26 18:40:46 +0200
commit725508640117c24150fb18811e477fae4e2e9c85 (patch)
tree1755c8c07c5688eedf73ea7d15c4f8a1668e6412
parentUse xs_evp_sign() for signing. (diff)
downloadsnac2-725508640117c24150fb18811e477fae4e2e9c85.tar.gz
snac2-725508640117c24150fb18811e477fae4e2e9c85.tar.xz
snac2-725508640117c24150fb18811e477fae4e2e9c85.zip
Backported from xs.
-rw-r--r--xs_openssl.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/xs_openssl.h b/xs_openssl.h
index d31442a..d172444 100644
--- a/xs_openssl.h
+++ b/xs_openssl.h
@@ -185,7 +185,6 @@ d_char *xs_evp_sign(char *secret, char *mem, int size)
185 unsigned char *sig; 185 unsigned char *sig;
186 unsigned int sig_len; 186 unsigned int sig_len;
187 EVP_PKEY *pkey; 187 EVP_PKEY *pkey;
188
189 EVP_MD_CTX *mdctx; 188 EVP_MD_CTX *mdctx;
190 const EVP_MD *md; 189 const EVP_MD *md;
191 190
@@ -193,6 +192,10 @@ d_char *xs_evp_sign(char *secret, char *mem, int size)
193 b = BIO_new_mem_buf(secret, strlen(secret)); 192 b = BIO_new_mem_buf(secret, strlen(secret));
194 pkey = PEM_read_bio_PrivateKey(b, NULL, NULL, NULL); 193 pkey = PEM_read_bio_PrivateKey(b, NULL, NULL, NULL);
195 194
195 /* I've learnt all these magical incantations by watching
196 the Python module code and the OpenSSL manual pages */
197 /* Well, "learnt" may be an exaggeration */
198
196 md = EVP_get_digestbyname("sha256"); 199 md = EVP_get_digestbyname("sha256");
197 200
198 mdctx = EVP_MD_CTX_new(); 201 mdctx = EVP_MD_CTX_new();
@@ -207,7 +210,6 @@ d_char *xs_evp_sign(char *secret, char *mem, int size)
207 signature = xs_base64_enc((char *)sig, sig_len); 210 signature = xs_base64_enc((char *)sig, sig_len);
208 211
209 EVP_MD_CTX_free(mdctx); 212 EVP_MD_CTX_free(mdctx);
210
211 BIO_free(b); 213 BIO_free(b);
212 free(sig); 214 free(sig);
213 215