mirror of
https://github.com/arun11299/cpp-jwt.git
synced 2025-05-31 00:47:41 +00:00
PEM signing now works...silly double pointergit add -A Test code still needs to be removed
This commit is contained in:
parent
5a150780cf
commit
aaf5c9bb46
8 changed files with 233 additions and 9 deletions
BIN
include/jwt/test/test_evp
Executable file
BIN
include/jwt/test/test_evp
Executable file
Binary file not shown.
45
include/jwt/test/test_evp.c
Normal file
45
include/jwt/test/test_evp.c
Normal file
|
@ -0,0 +1,45 @@
|
|||
#include <stdio.h>
|
||||
#include <openssl/evp.h>
|
||||
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
EVP_MD_CTX *mdctx;
|
||||
const EVP_MD *md;
|
||||
char mess1[] = "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwiaXNzIjoiYXJ1bi5jb20iLCJ0aW1lX3N0ciI6Ijg6MThwbSAyNCBOb3YgMjAxNyIsIndoZXJlIjoiYWlycG9ydCJ9";
|
||||
unsigned char md_value[EVP_MAX_MD_SIZE];
|
||||
int md_len, i;
|
||||
|
||||
//OpenSSL_add_all_digests();
|
||||
|
||||
if(!argv[1]) {
|
||||
printf("Usage: mdtest digestname\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
md = EVP_sha256();
|
||||
|
||||
if(!md) {
|
||||
printf("Unknown message digest %s\n", argv[1]);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
mdctx = EVP_MD_CTX_create();
|
||||
EVP_DigestInit_ex(mdctx, md, NULL);
|
||||
EVP_DigestUpdate(mdctx, mess1, strlen(mess1));
|
||||
EVP_DigestFinal_ex(mdctx, md_value, &md_len);
|
||||
EVP_MD_CTX_destroy(mdctx);
|
||||
|
||||
printf("Dig: %s\n", md_value);
|
||||
printf("Dig: %d\n", md_len);
|
||||
|
||||
printf("Digest is: ");
|
||||
for(i = 0; i < md_len; i++)
|
||||
printf("%02x", md_value[i]);
|
||||
printf("\n");
|
||||
|
||||
d2i_ECDSA_SIG(NULL, (const unsigned char **)&md_value[0], md_len);
|
||||
|
||||
/* Call this once before exit. */
|
||||
EVP_cleanup();
|
||||
exit(0);
|
||||
}
|
Binary file not shown.
|
@ -44,7 +44,38 @@ void basic_jwt_object_test()
|
|||
auto dec_obj = jwt::jwt_decode(obj3.signature(), "secret");
|
||||
}
|
||||
|
||||
void jwt_object_pem_test()
|
||||
{
|
||||
std::string pub_key =
|
||||
R"(-----BEGIN PUBLIC KEY-----
|
||||
MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEomxC9ycc8AkXSwWQpu1kN5Fmgy/sD/KJ
|
||||
qN3tlSZmUEZ3w3c6KYJfK97PMOSZQaUdeydBoq/IOglQQOj8zLqubq5IpaaUiDQ5
|
||||
0eJg79PvXuLiVUH98cBL/o8sDVB/sGzz
|
||||
-----END PUBLIC KEY-----)";
|
||||
|
||||
std::string priv_key =
|
||||
R"(-----BEGIN EC PRIVATE KEY-----
|
||||
MIGkAgEBBDBeLCgapjZmvTatMHaYX3A02+0Ys3Tr8kda+E9DFnmCSiCOEig519fT
|
||||
13edeU8YdDugBwYFK4EEACKhZANiAASibEL3JxzwCRdLBZCm7WQ3kWaDL+wP8omo
|
||||
3e2VJmZQRnfDdzopgl8r3s8w5JlBpR17J0Gir8g6CVBA6PzMuq5urkilppSINDnR
|
||||
4mDv0+9e4uJVQf3xwEv+jywNUH+wbPM=
|
||||
-----END EC PRIVATE KEY-----)";
|
||||
|
||||
jwt::jwt_object obj;
|
||||
obj.secret(priv_key);
|
||||
obj.header().algo(jwt::algorithm::ES256);
|
||||
|
||||
obj.add_claim("iss", "arun.com")
|
||||
.add_claim("where", "airport")
|
||||
.add_claim("time_str", "8:18pm 24 Nov 2017")
|
||||
.add_claim("id", 1)
|
||||
;
|
||||
|
||||
std::cout << "pem sign " << obj.signature() << std::endl;
|
||||
}
|
||||
|
||||
int main() {
|
||||
basic_jwt_object_test();
|
||||
jwt_object_pem_test();
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue