l8w8jwt
l8w8jwt copied to clipboard
Please help me! The func l8w8jwt_base64_decode can't parse the result
int split (char *str, char c, char ***arr)
{
int count = 1;
int token_len = 1;
int i = 0;
char *p;
char *t;
p = str;
while (*p != '\0')
{
if (*p == c)
count++;
p++;
}
*arr = (char**) malloc(sizeof(char*) * count);
if (*arr == NULL)
exit(1);
p = str;
while (*p != '\0')
{
if (*p == c)
{
(*arr)[i] = (char*) malloc( sizeof(char) * token_len );
if ((*arr)[i] == NULL)
exit(1);
token_len = 0;
i++;
}
p++;
token_len++;
}
(*arr)[i] = (char*) malloc( sizeof(char) * token_len );
if ((*arr)[i] == NULL)
exit(1);
i = 0;
p = str;
t = ((*arr)[i]);
while (*p != '\0')
{
if (*p != c && *p != '\0')
{
*t = *p;
t++;
}
else
{
*t = '\0';
i++;
t = ((*arr)[i]);
}
p++;
}
return count;
}
uint8_t* decode_payload = (uint8_t*)malloc(2048 * sizeof(uint8_t));
size_t decode_payload_length;
char **tokens = NULL; // 字符型指针的指针 相当于二维数组
split(JWT, '.', &tokens);
int base64_decode_result = l8w8jwt_base64_decode(0, tokens[1], strlen(tokens[1]), &decode_payload, &decode_payload_length);
If my RSA public key and jwt is 2048 bit generate, it's OK
static const char RSA_PUBLIC_KEY[] = "-----BEGIN PUBLIC KEY-----\n"
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxXdGsBnQJUjc8ARw9KaT\n"
"81Q1OvKJxNdgT765gV7b1pJffG9Mc4qM+Pe7fKkKEu+mD5jz5aGIvGDanqlq5y/T\n"
"6rQT0OqMoqRxNKSo0iu626TmAihpgRfSjIz+HcE1vQaUX57D71mChyrJPSsNZB0L\n"
"j15i9U7ExDWLY3fQZQ0m3VuTIaw5JZMdIlaPe0PViM7zxB+Z/0nYarEjrQ4xZBNi\n"
"Ex5r+tubG103+qZNxTzpo2+KRE+E2nWF+qLo/gPN8YvNOO1MbDxHZY9ri7iIKPcd\n"
"HWIeFJoTLlF0TRysFEKgmaP3fDsP5GfFv0NztK16KX3hoilwOm0ZuM0PUTORu+ES\n"
"0wIDAQAB\n"
"-----END PUBLIC KEY-----";
char JWT[] = "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJkb20iOiJzaG9uZ2EuY2MiLCJpcCI6IjE1NC4xNy4zLjE1NyIsInNpZCI6IjI3ODRmYzIwLWM2MWUtNDM4Zi1iM2UwLWZmZDgyYjYzMzgxYSIsImNpZCI6IjU5MmI3ZTJmLTMyMGEtNGJiNi05MmU3LTBjMGFlNzhkNDFhOSIsImlhdCI6MTY1OTc0ODUzMywibmJmIjoxNjU5MjgzMjAwLCJleHAiOjE2NjcyMzE5OTl9.lx2JZUwjiQUgmOmpiDZAD-x9GEspVFMPhuDmuA3re13i7zkQG6hgU2thrcoFDXiYtD_hupkNvruuNhQITFRrXc9gm2N-ptwLJc4B6AHYmzTuZj51No9SYgth4LyL45SD1TThGJKv0MfyniahVdSeIEO9expXJhJfiRuxES2d2fs6s6-sef0M_rhA9FR67QpWwvcdPyqyzM1WksxtfuO7JXe0hRsiLqHXnnPPDGW4IgI6yg42r7m_aCuuvkzaJYASvKzLbKniRUKbvfxsQSb-Ths2dG9nfahg-5c7Un8YeF8KYYNPKtw43rWCigxvTrXmq6IvaOgGa8Ty5G43neMxgA";
If my RSA public key and jwt is 4096 bit generate, it's incorrect
static const char RSA_PUBLIC_KEY[] = "-----BEGIN PUBLIC KEY-----\n"
"MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvT9MB8RSgRIdWiAEn1Sk\n"
"8lW4jn+w2bkkrBwUmC0Mtgrl3iGrMVuA3zPBVhrxle4kkNk8aU5M/0smRrjPB71Q\n"
"yBqAbtCZ9E5mIT5S8tMBORobLf7fnvyrmIYzAmIq9Q3Z2SZ0UBBg1xesAQi8qSCN\n"
"vL5OvbwGdSPnlAijhbR0qR8O615lpi3zEPa/ABskwHcAEU2KoNAjHzZ+Od7N5PV1\n"
"QIQtN/+AJYfwN7XctGS9l8SVWxExWYDg38+/5fGceD5Z13uITlB2C7QERRcWj1nH\n"
"bR+lXFZt+7nMjWSXjWDBcTWeGzotrCr3Zy9XC9sqAhRLWoHfbgoiiDtihHBz8IPc\n"
"1zdZFlQy5Fl/VomzfJmb+flcXe9ZfPfKo2Nx3OE42jlMrqaKtT0Vr9O5c7xH/1iU\n"
"vIkev8rXhsXn2bRtczOUgdj1zD+77B40OxBUyNdlEwFqsQq0VBbGDq7xKXnAnl1X\n"
"+LjOOfDGpjsCw9RY98T1jcms2DhTJ/JA+6Tz0ifvb8AWTU4LGJbd/XBpD5M/7qNr\n"
"GkLhsNIDVYQm9d9DGeV9QwsOgTQ9UDBEO+U9uCWFuH8upoV9OWuKaqbcOhFWqaHh\n"
"Fhrl33a0IuMpmsOWhRwQXEksN2hRxIsaMrbsWz48Nuk/CJjVSvy7MbUpEYIPceYM\n"
"yhWlY7L8ZbGa98IaUBE/ZHkCAwEAAQ==\n"
"-----END PUBLIC KEY-----";
char JWT[] = "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJkb20iOiJhYmMuYWJjIiwiaXAiOiIxMjMuMTIzLjEyMy4xMjMiLCJzaWQiOiIwZmVkNDAxOS1hZjRhLTQwNGYtOWJhNC1mMzkwMDUzYTVlMTQiLCJjaWQiOiJmYTFiOGQ3NS03ODU5LTRiN2QtOWU1Mi03NTRlOGNkZTZmNzEiLCJpYXQiOjE2NjAwMjczNTksIm5iZiI6MTY1OTI4MzIwMSwiZXhwIjoxNjY3MjMxOTk5fQ.VFmyodB2Z0RqacXHUrn6oa-oWw7RSilgXfxalltkrp19W40pubvp633ZdBH0J9tmJJp2Adw0ayeclJJRXI9Xb9iSHXgShnDUwxRunxN3O5GgBLfYs9NDFUTw2D4d5EkO7PZlNMSr5U0IpX9fAjz-THcdKw4GvYDljdPVWClsGn7Ujhy9QHS4PoL1JN3pTXeLobma0H5MnCaBeTVyicXRILmmdhqKNJuNVGB86qM0jl8LX7i55-3Zev0Nxwal6vJuQihkwaXWy3aBwBPVK8hRafJLitLg0CO4SGNzSBGEf8sQzYPhMR-Lqe40RUPdUw4c8vnYTc67CZmf12pWgUkDyv-DeShQRyXRq0M_-0xCxdtHGPQSt3XC_mmGCs2jZbQka2BLttGlb8gz_gSIxTdOSOEt9BC5SO7LcjFjA6FMGJKfDy6pkiehQpFvopgV0_OpDddurG0mcr_zKGK3aEXgFJqCSgQMkkxlKR9ZNQ77XPuC2jV_-B1LGnxkAldeDCjEjYKnpJHYDm3O2BjnQfttJXflSe8Mkcp_DkYQI9PbbF-7hmSESD9jIe5CcZToYFSbZWLhKTio5ZNjSjjetiaYPoNcM71-HC6Qx1UFO_prB7_uRV59Ujkinogj0QFhVBm_SuFqSs7It8aclVrX2bhwsYDy-CZS_1D3BiHit1obR7w";
At this time base64_decode_result is 200 , and I can't get decode_payload