summaryrefslogtreecommitdiff
path: root/xs_openssl.h
diff options
context:
space:
mode:
authorGravatar default2022-09-21 09:17:59 +0200
committerGravatar default2022-09-21 09:17:59 +0200
commit9573dbcdb698bf863af9921e305ff2d818d30fe2 (patch)
tree01f21663e102169f2fa92210b9cc75496259f718 /xs_openssl.h
parentUse its own copy of the headers in http_signed_request(). (diff)
downloadpenes-snac2-9573dbcdb698bf863af9921e305ff2d818d30fe2.tar.gz
penes-snac2-9573dbcdb698bf863af9921e305ff2d818d30fe2.tar.xz
penes-snac2-9573dbcdb698bf863af9921e305ff2d818d30fe2.zip
New function xs_sha256_base64().
Diffstat (limited to 'xs_openssl.h')
-rw-r--r--xs_openssl.h24
1 files changed, 22 insertions, 2 deletions
diff --git a/xs_openssl.h b/xs_openssl.h
index a6a17b1..43a18e1 100644
--- a/xs_openssl.h
+++ b/xs_openssl.h
@@ -7,6 +7,7 @@
7d_char *xs_md5_hex(const void *input, int size); 7d_char *xs_md5_hex(const void *input, int size);
8d_char *xs_sha1_hex(const void *input, int size); 8d_char *xs_sha1_hex(const void *input, int size);
9d_char *xs_sha256_hex(const void *input, int size); 9d_char *xs_sha256_hex(const void *input, int size);
10d_char *xs_sha256_base64(const void *input, int size);
10d_char *xs_rsa_genkey(int bits); 11d_char *xs_rsa_genkey(int bits);
11d_char *xs_rsa_sign(char *secret, char *mem, int size); 12d_char *xs_rsa_sign(char *secret, char *mem, int size);
12int xs_rsa_verify(char *pubkey, char *mem, int size, char *b64sig); 13int xs_rsa_verify(char *pubkey, char *mem, int size, char *b64sig);
@@ -45,19 +46,38 @@ d_char *xs_sha1_hex(const void *input, int size)
45} 46}
46 47
47 48
48d_char *xs_sha256_hex(const void *input, int size) 49unsigned char *_xs_sha256(const void *input, int size, unsigned char *sha256)
49{ 50{
50 unsigned char sha256[32];
51 SHA256_CTX ctx; 51 SHA256_CTX ctx;
52 52
53 SHA256_Init(&ctx); 53 SHA256_Init(&ctx);
54 SHA256_Update(&ctx, input, size); 54 SHA256_Update(&ctx, input, size);
55 SHA256_Final(sha256, &ctx); 55 SHA256_Final(sha256, &ctx);
56 56
57 return sha256;
58}
59
60
61d_char *xs_sha256_hex(const void *input, int size)
62{
63 unsigned char sha256[32];
64
65 _xs_sha256(input, size, sha256);
66
57 return xs_hex_enc((char *)sha256, sizeof(sha256)); 67 return xs_hex_enc((char *)sha256, sizeof(sha256));
58} 68}
59 69
60 70
71d_char *xs_sha256_base64(const void *input, int size)
72{
73 unsigned char sha256[32];
74
75 _xs_sha256(input, size, sha256);
76
77 return xs_base64_enc((char *)sha256, sizeof(sha256));
78}
79
80
61d_char *xs_rsa_genkey(int bits) 81d_char *xs_rsa_genkey(int bits)
62/* generates an RSA keypair */ 82/* generates an RSA keypair */
63{ 83{