fix base64url related errors when only LTC_BASE64 is defined
This commit is contained in:
		
							parent
							
								
									0b79bbaf5b
								
							
						
					
					
						commit
						00308d8651
					
				| @ -45,8 +45,8 @@ static const unsigned char map_base64[256] = { | |||||||
| 255, 255, 255, 255 }; | 255, 255, 255, 255 }; | ||||||
| #endif /* LTC_BASE64 */ | #endif /* LTC_BASE64 */ | ||||||
| 
 | 
 | ||||||
|  | static const unsigned char map_base64url[] = { | ||||||
| #if defined(LTC_BASE64_URL) | #if defined(LTC_BASE64_URL) | ||||||
| static const unsigned char map_base64url[256] = { |  | ||||||
| 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, | 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, | ||||||
| 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, | 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, | ||||||
| 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, | 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, | ||||||
| @ -68,8 +68,9 @@ static const unsigned char map_base64url[256] = { | |||||||
| 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, | 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, | ||||||
| 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, | 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, | ||||||
| 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, | 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, | ||||||
| 255, 255, 255, 255 }; | 255, 255, 255, 255 | ||||||
| #endif /* LTC_BASE64_URL */ | #endif /* LTC_BASE64_URL */ | ||||||
|  | }; | ||||||
| 
 | 
 | ||||||
| enum { | enum { | ||||||
|    relaxed = 0, |    relaxed = 0, | ||||||
|  | |||||||
| @ -1,10 +1,12 @@ | |||||||
| #include  <tomcrypt_test.h> | #include  <tomcrypt_test.h> | ||||||
| 
 | 
 | ||||||
| #ifdef LTC_BASE64 | #if defined(LTC_BASE64) || defined(LTC_BASE64_URL) | ||||||
| int base64_test(void) | int base64_test(void) | ||||||
| { | { | ||||||
|    unsigned char in[64], out[256], tmp[64]; |    unsigned char in[64], out[256], tmp[64]; | ||||||
|    unsigned long x, l1, l2, slen1; |    unsigned long x, l1, l2, slen1; | ||||||
|  | 
 | ||||||
|  | #if defined(LTC_BASE64) | ||||||
|    const char special_case[] = { |    const char special_case[] = { | ||||||
|          0xbe, 0xe8, 0x92, 0x3c, 0xa2, 0x25, 0xf0, 0xf8, |          0xbe, 0xe8, 0x92, 0x3c, 0xa2, 0x25, 0xf0, 0xf8, | ||||||
|          0x91, 0xe4, 0xef, 0xab, 0x0b, 0x8c, 0xfd, 0xff, |          0x91, 0xe4, 0xef, 0xab, 0x0b, 0x8c, 0xfd, 0xff, | ||||||
| @ -31,7 +33,9 @@ int base64_test(void) | |||||||
|        {"foobar", "Zm9vYmFy"}, |        {"foobar", "Zm9vYmFy"}, | ||||||
|        {special_case,"vuiSPKIl8PiR5O+rC4z9/xTQKZ0="} |        {special_case,"vuiSPKIl8PiR5O+rC4z9/xTQKZ0="} | ||||||
|    }; |    }; | ||||||
|  | #endif | ||||||
| 
 | 
 | ||||||
|  | #ifdef LTC_BASE64_URL | ||||||
|    const struct { |    const struct { | ||||||
|       const char* s; |       const char* s; | ||||||
|       int is_strict; |       int is_strict; | ||||||
| @ -48,20 +52,6 @@ int base64_test(void) | |||||||
|          {"vuiS*===PKIl8P*iR5O-rC4*z9_xTQKZ0=", 0}, |          {"vuiS*===PKIl8P*iR5O-rC4*z9_xTQKZ0=", 0}, | ||||||
|    }; |    }; | ||||||
| 
 | 
 | ||||||
|    for (x = 0; x < sizeof(cases)/sizeof(cases[0]); ++x) { |  | ||||||
|        memset(out, 0, sizeof(out)); |  | ||||||
|        memset(tmp, 0, sizeof(tmp)); |  | ||||||
|        slen1 = strlen(cases[x].s); |  | ||||||
|        l1 = sizeof(out); |  | ||||||
|        DO(base64_encode((unsigned char*)cases[x].s, slen1, out, &l1)); |  | ||||||
|        l2 = sizeof(tmp); |  | ||||||
|        DO(base64_strict_decode(out, l1, tmp, &l2)); |  | ||||||
|        if (compare_testvector(out, l1, cases[x].b64, strlen(cases[x].b64), "base64 encode", x) || |  | ||||||
|              compare_testvector(tmp, l2, cases[x].s, slen1, "base64 decode", x)) { |  | ||||||
|            return 1; |  | ||||||
|        } |  | ||||||
|    } |  | ||||||
| 
 |  | ||||||
|    for (x = 0; x < sizeof(url_cases)/sizeof(url_cases[0]); ++x) { |    for (x = 0; x < sizeof(url_cases)/sizeof(url_cases[0]); ++x) { | ||||||
|        slen1 = strlen(url_cases[x].s); |        slen1 = strlen(url_cases[x].s); | ||||||
|        l1 = sizeof(out); |        l1 = sizeof(out); | ||||||
| @ -85,6 +75,22 @@ int base64_test(void) | |||||||
|    } |    } | ||||||
| 
 | 
 | ||||||
|    DO(base64url_strict_decode((unsigned char*)url_cases[4].s, slen1, out, &l1) == CRYPT_INVALID_PACKET ? CRYPT_OK : CRYPT_INVALID_PACKET); |    DO(base64url_strict_decode((unsigned char*)url_cases[4].s, slen1, out, &l1) == CRYPT_INVALID_PACKET ? CRYPT_OK : CRYPT_INVALID_PACKET); | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | #if defined(LTC_BASE64) | ||||||
|  |    for (x = 0; x < sizeof(cases)/sizeof(cases[0]); ++x) { | ||||||
|  |        memset(out, 0, sizeof(out)); | ||||||
|  |        memset(tmp, 0, sizeof(tmp)); | ||||||
|  |        slen1 = strlen(cases[x].s); | ||||||
|  |        l1 = sizeof(out); | ||||||
|  |        DO(base64_encode((unsigned char*)cases[x].s, slen1, out, &l1)); | ||||||
|  |        l2 = sizeof(tmp); | ||||||
|  |        DO(base64_strict_decode(out, l1, tmp, &l2)); | ||||||
|  |        if (compare_testvector(out, l1, cases[x].b64, strlen(cases[x].b64), "base64 encode", x) || | ||||||
|  |              compare_testvector(tmp, l2, cases[x].s, slen1, "base64 decode", x)) { | ||||||
|  |            return 1; | ||||||
|  |        } | ||||||
|  |    } | ||||||
| 
 | 
 | ||||||
|    for  (x = 0; x < 64; x++) { |    for  (x = 0; x < 64; x++) { | ||||||
|        yarrow_read(in, x, &yarrow_prng); |        yarrow_read(in, x, &yarrow_prng); | ||||||
| @ -109,6 +115,8 @@ int base64_test(void) | |||||||
|    } |    } | ||||||
|    l2 = sizeof(tmp); |    l2 = sizeof(tmp); | ||||||
|    DO(base64_strict_decode(out, l1, tmp, &l2) == CRYPT_INVALID_PACKET ? CRYPT_OK : CRYPT_INVALID_PACKET); |    DO(base64_strict_decode(out, l1, tmp, &l2) == CRYPT_INVALID_PACKET ? CRYPT_OK : CRYPT_INVALID_PACKET); | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|    return 0; |    return 0; | ||||||
| } | } | ||||||
| #endif | #endif | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user