-
Notifications
You must be signed in to change notification settings - Fork 70
Description
i get a valgrind error :
==9613== Invalid read of size 8
==9613== at 0x611A566: __strcmp_sse42 (strcmp-sse42.S:163)
==9613== by 0x23505FC: _cjose_jws_verify_sig_rs (jws.c:958)
can you please advice? i use cjose-0.6.2.3 , jansson-2.14
the program is simple:
``
#include <stdio.h>
#include <string.h>
#include <cjose/cjose.h>
const char *jwt_str = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjJrcnBxU01yTHdYY2JVOURvTEpOYyJ9.eyJuaWNrbmFtZSI6InVzZXIxIiwibmFtZSI6InVzZXIxQGV4YW1wbGUuY29tIiwicGljdHVyZSI6Imh0dHBzOi8vcy5ncmF2YXRhci5jb20vYXZhdGFyLzExMWQ2OGQwNmUyZDMxN2I1YTU5YzJjNmM1YmFkODA4P3M9NDgwJnI9cGcmZD1odHRwcyUzQSUyRiUyRmNkbi5hdXRoMC5jb20lMkZhdmF0YXJzJTJGdXMucG5nIiwidXBkYXRlZF9hdCI6IjIwMjUtMDQtMDNUMjI6NDc6MjMuMTQ4WiIsImVtYWlsIjoidXNlcjFAZXhhbXBsZS5jb20iLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsImlzcyI6Imh0dHBzOi8vZGV2LXlyN25mdWlmaDJ6aGR1YmoudXMuYXV0aDAuY29tLyIsImF1ZCI6IkpmNndyN1VKRzBoUmxPZHpTdE1paTVjOU9FU1cwNWxDIiwic3ViIjoiYXV0aDB8NjYxMWIyZjZhMDA5ZGJiN2I5MGU4ZjVhIiwiaWF0IjoxNzQzNzIwNDQ0LCJleHAiOjE3NDM3NTY0NDQsInNpZCI6IlN1QkhIbnhRSkVfLXRVd2loZ3AxeVIyS2ZvUmJmWi14In0.LidvXEf8V6Jq08oBPJo7RvBu9sgLqhULhVzWiBuUUEkgJy0McxbZSywGs43TiEccQPWwwf3Ye0yS-NS_B2C35KQ93QNqFSgsn-YDa_4DNX0ENm7mTqf1XXervOt1StD-w7uV3tJypNfPAXL2qLYnFLkk3Ok_bH_80b6SmjfynjvQ0B8q8sxx8cXGrIFW9gST8SwbOyOdGKEtZp2FagC2mK5pBbsqFeAV_tAlyaycEnNRm4ODdakzFTONdyc9Ir6o_VQ4VydOcNqzG_w26rLye6FW_XBZgyF5uro7YEd8jpvH7oW0EU08bi3Qr9OyDK50fsMxRMQujCIVSre9AKRicA";
;
const char *jwk_json = R"(
{"kty":"RSA","use":"sig","n":"6tTT0Es5d020XcO8acTlxW4RrQ-yyFYK0ru2v96rznag7AOxsXkYBXtbWcxGsJmklaqRg1ibBzXfySsGCitQ_7BLcWIAVTavfdZytryZqyopXeD1fW6UswCVHMcZ0o1P4U382mgw17CqurReELPnHGpFEMa7lxzOn48R3v2qaEpLgqZPSZ82-CehI5TUVvfZkwfvx3WF-GGB9U9c2xj73s80PKTfrZ7VNAGEtXySaA9vlzXdkGTHzNZBKFD_1hLiQ8_9VT7uyO6deNqAuItRk68UDFHrqD_Zc1abDQy2bv_pjsdsKHCPHvkFfhg0GuHmo0wpYj4bW2LRH25rAUpa1Q","e":"AQAB","kid":"2krpqSMrLwXcbU9DoLJNc","x5t":"Zqzqk4jhHDNmVXVFTZ0TgkKKX0Q","x5c":["MIIDHTCCAgWgAwIBAgIJHLVa71EFy/coMA0GCSqGSIb3DQEBCwUAMCwxKjAoBgNVBAMTIWRldi15cjduZnVpZmgyemhkdWJqLnVzLmF1dGgwLmNvbTAeFw0yNDA0MDIxMDE0MTlaFw0zNzEyMTAxMDE0MTlaMCwxKjAoBgNVBAMTIWRldi15cjduZnVpZmgyemhkdWJqLnVzLmF1dGgwLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOrU09BLOXdNtF3DvGnE5cVuEa0PsshWCtK7tr/eq852oOwDsbF5GAV7W1nMRrCZpJWqkYNYmwc138krBgorUP+wS3FiAFU2r33Wcra8masqKV3g9X1ulLMAlRzHGdKNT+FN/NpoMNewqrq0XhCz5xxqRRDGu5cczp+PEd79qmhKS4KmT0mfNvgnoSOU1Fb32ZMH78d1hfhhgfVPXNsY+97PNDyk362e1TQBhLV8kmgPb5c13ZBkx8zWQShQ/9YS4kPP/VU+7sjunXjagLiLUZOvFAxR66g/2XNWmw0Mtm7/6Y7HbChwjx75BX4YNBrh5qNMKWI+G1ti0R9uawFKWtUCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUus//Ex4MbOLS6c1TzdZl385jYbQwDgYDVR0PAQH/BAQDAgKEMA0GCSqGSIb3DQEBCwUAA4IBAQByej/jMqE0ggiP7RKJQDak45h7hBc6XpuRgBWU2OqUMH2L+S8wCtCxt11Ogu7NeFjzOXfSLvjVfW2NksMi3Ux9IzYp/+ubwX7NWNAJsuj0OcWAYWUpafFOlKcWhrwkjwzMksXz8qDN3qm5tgfj5dshgqlZNYRMgtBjUw12ackF4hmfz9hEhKGeKLKZ/RzqphHInaHN7U38/zX1xMgvzkAYkTk15FNluCA3x7qFqFJivu/YKHs/yAaSF4biFwdu6IlbBwUbFaSW1VL6NqyHrdTgUi6h4AkqC5XJ13ZHj0IDdTxQKhNHgFPuKNvbr/oj5F9RGRLbZFGg5FCRVe4qjXo0"],"alg":"RS256"})";
;
int main()
{
cjose_err err;
cjose_jwk_t *jwk = cjose_jwk_import(jwk_json, strlen(jwk_json), &err);
if (!jwk) {
fprintf(stderr, "Failed to import JWK: %s\n", err.message);
return 1;
}
cjose_jws_t *jws = cjose_jws_import(jwt_str, strlen(jwt_str), &err);
if (!jws) {
fprintf(stderr, "Failed to parse JWT: %s\n", err.message);
return 1;
}
if (!cjose_jws_verify(jws, jwk, &err)) {
fprintf(stderr, "JWT signature verification failed: %s\n", err.message);
return 1;
}
uint8_t *payload_raw;
size_t payload_len;
cjose_err err1;
if (!cjose_jws_get_plaintext(jws, &payload_raw, &payload_len, &err1)) {
fprintf(stderr, "Failed to get JWT payload: %s\n", err.message);
return 1;
}
if (!payload_raw) {
fprintf(stderr, "Failed to get JWT payload\n");
return 1;
}
printf("Verified payload: %.*s\n", (int)payload_len, payload_raw);
printf("Verified payload\n");
cjose_jws_release(jws);
cjose_jwk_release(jwk);
return 0;
}
``