diff options
| author | 2022-09-21 09:17:59 +0200 | |
|---|---|---|
| committer | 2022-09-21 09:17:59 +0200 | |
| commit | 9573dbcdb698bf863af9921e305ff2d818d30fe2 (patch) | |
| tree | 01f21663e102169f2fa92210b9cc75496259f718 /xs_openssl.h | |
| parent | Use its own copy of the headers in http_signed_request(). (diff) | |
| download | penes-snac2-9573dbcdb698bf863af9921e305ff2d818d30fe2.tar.gz penes-snac2-9573dbcdb698bf863af9921e305ff2d818d30fe2.tar.xz penes-snac2-9573dbcdb698bf863af9921e305ff2d818d30fe2.zip | |
New function xs_sha256_base64().
Diffstat (limited to '')
| -rw-r--r-- | xs_openssl.h | 24 |
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 @@ | |||
| 7 | d_char *xs_md5_hex(const void *input, int size); | 7 | d_char *xs_md5_hex(const void *input, int size); |
| 8 | d_char *xs_sha1_hex(const void *input, int size); | 8 | d_char *xs_sha1_hex(const void *input, int size); |
| 9 | d_char *xs_sha256_hex(const void *input, int size); | 9 | d_char *xs_sha256_hex(const void *input, int size); |
| 10 | d_char *xs_sha256_base64(const void *input, int size); | ||
| 10 | d_char *xs_rsa_genkey(int bits); | 11 | d_char *xs_rsa_genkey(int bits); |
| 11 | d_char *xs_rsa_sign(char *secret, char *mem, int size); | 12 | d_char *xs_rsa_sign(char *secret, char *mem, int size); |
| 12 | int xs_rsa_verify(char *pubkey, char *mem, int size, char *b64sig); | 13 | int 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 | ||
| 48 | d_char *xs_sha256_hex(const void *input, int size) | 49 | unsigned 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 | |||
| 61 | d_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 | ||
| 71 | d_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 | |||
| 61 | d_char *xs_rsa_genkey(int bits) | 81 | d_char *xs_rsa_genkey(int bits) |
| 62 | /* generates an RSA keypair */ | 82 | /* generates an RSA keypair */ |
| 63 | { | 83 | { |