diff options
| author | 2022-09-30 04:33:42 +0200 | |
|---|---|---|
| committer | 2022-09-30 04:33:42 +0200 | |
| commit | 2688230a190cc5a98bfb5e95b3a41864854b3151 (patch) | |
| tree | 1f53ddd117a51f68422e7f85162b5d66916072e3 /http.c | |
| parent | More work in check_signature() (non-working). (diff) | |
| download | snac2-2688230a190cc5a98bfb5e95b3a41864854b3151.tar.gz snac2-2688230a190cc5a98bfb5e95b3a41864854b3151.tar.xz snac2-2688230a190cc5a98bfb5e95b3a41864854b3151.zip | |
Fixed check_signature().
Diffstat (limited to 'http.c')
| -rw-r--r-- | http.c | 9 |
1 files changed, 2 insertions, 7 deletions
| @@ -108,8 +108,6 @@ int check_signature(snac *snac, char *req) | |||
| 108 | xs *keyId = NULL; | 108 | xs *keyId = NULL; |
| 109 | xs *headers = NULL; | 109 | xs *headers = NULL; |
| 110 | xs *signature = NULL; | 110 | xs *signature = NULL; |
| 111 | xs *sig_bin = NULL; | ||
| 112 | int s_size; | ||
| 113 | char *pubkey; | 111 | char *pubkey; |
| 114 | char *p; | 112 | char *p; |
| 115 | 113 | ||
| @@ -127,7 +125,7 @@ int check_signature(snac *snac, char *req) | |||
| 127 | headers = xs_crop(xs_dup(v), 9, -1); | 125 | headers = xs_crop(xs_dup(v), 9, -1); |
| 128 | else | 126 | else |
| 129 | if (xs_startswith(v, "signature")) | 127 | if (xs_startswith(v, "signature")) |
| 130 | signature = xs_crop(xs_dup(v), 12, -1); | 128 | signature = xs_crop(xs_dup(v), 11, -1); |
| 131 | } | 129 | } |
| 132 | } | 130 | } |
| 133 | 131 | ||
| @@ -187,10 +185,7 @@ int check_signature(snac *snac, char *req) | |||
| 187 | } | 185 | } |
| 188 | } | 186 | } |
| 189 | 187 | ||
| 190 | /* convert the signature to binary */ | 188 | if (xs_evp_verify(pubkey, sig_str, strlen(sig_str), signature) != 1) { |
| 191 | sig_bin = xs_base64_dec(signature, &s_size); | ||
| 192 | |||
| 193 | if (xs_evp_verify(pubkey, sig_str, strlen(sig_str), sig_bin) != 1) { | ||
| 194 | snac_debug(snac, 1, xs_fmt("rsa verify error %s", keyId)); | 189 | snac_debug(snac, 1, xs_fmt("rsa verify error %s", keyId)); |
| 195 | } | 190 | } |
| 196 | 191 | ||