BASE64_STD
key_len = base64_decode(secret, allocated_len, key->key, true, BASE64_STD);
ret = base64_encode(digest, digest_len, enc, true, BASE64_STD);
[BASE64_STD] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
[BASE64_STD] = BASE64_REV_INIT('+', '/'),
expect_encode_ok(test, (const u8 *)"", 0, "", true, BASE64_STD);
expect_encode_ok(test, (const u8 *)"f", 1, "Zg==", true, BASE64_STD);
expect_encode_ok(test, (const u8 *)"fo", 2, "Zm8=", true, BASE64_STD);
expect_encode_ok(test, (const u8 *)"foo", 3, "Zm9v", true, BASE64_STD);
expect_encode_ok(test, (const u8 *)"foob", 4, "Zm9vYg==", true, BASE64_STD);
expect_encode_ok(test, (const u8 *)"fooba", 5, "Zm9vYmE=", true, BASE64_STD);
expect_encode_ok(test, (const u8 *)"foobar", 6, "Zm9vYmFy", true, BASE64_STD);
true, BASE64_STD);
"QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVo=", true, BASE64_STD);
"YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo=", true, BASE64_STD);
true, BASE64_STD);
expect_encode_ok(test, (const u8 *)"", 0, "", false, BASE64_STD);
expect_encode_ok(test, (const u8 *)"f", 1, "Zg", false, BASE64_STD);
expect_encode_ok(test, (const u8 *)"fo", 2, "Zm8", false, BASE64_STD);
expect_encode_ok(test, (const u8 *)"foo", 3, "Zm9v", false, BASE64_STD);
expect_encode_ok(test, (const u8 *)"foob", 4, "Zm9vYg", false, BASE64_STD);
expect_encode_ok(test, (const u8 *)"fooba", 5, "Zm9vYmE", false, BASE64_STD);
expect_encode_ok(test, (const u8 *)"foobar", 6, "Zm9vYmFy", false, BASE64_STD);
false, BASE64_STD);
"QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVo", false, BASE64_STD);
"YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo", false, BASE64_STD);
false, BASE64_STD);
expect_decode_ok(test, "", (const u8 *)"", 0, true, BASE64_STD);
expect_decode_ok(test, "Zg==", (const u8 *)"f", 1, true, BASE64_STD);
expect_decode_ok(test, "Zm8=", (const u8 *)"fo", 2, true, BASE64_STD);
expect_decode_ok(test, "Zm9v", (const u8 *)"foo", 3, true, BASE64_STD);
expect_decode_ok(test, "Zm9vYg==", (const u8 *)"foob", 4, true, BASE64_STD);
expect_decode_ok(test, "Zm9vYmE=", (const u8 *)"fooba", 5, true, BASE64_STD);
expect_decode_ok(test, "Zm9vYmFy", (const u8 *)"foobar", 6, true, BASE64_STD);
true, BASE64_STD);
(const u8 *)"ABCDEFGHIJKLMNOPQRSTUVWXYZ", 26, true, BASE64_STD);
(const u8 *)"abcdefghijklmnopqrstuvwxyz", 26, true, BASE64_STD);
expect_decode_err(test, "Zg=!", 4, true, BASE64_STD);
expect_decode_err(test, "Zm$=", 4, true, BASE64_STD);
expect_decode_err(test, "Z===", 4, true, BASE64_STD);
expect_decode_err(test, "Zg", 2, true, BASE64_STD);
expect_decode_err(test, "Zm9v====", 8, true, BASE64_STD);
expect_decode_err(test, "Zm==A", 5, true, BASE64_STD);
expect_decode_err(test, with_nul, 4, true, BASE64_STD);
expect_decode_ok(test, "", (const u8 *)"", 0, false, BASE64_STD);
expect_decode_ok(test, "Zg", (const u8 *)"f", 1, false, BASE64_STD);
expect_decode_ok(test, "Zm8", (const u8 *)"fo", 2, false, BASE64_STD);
expect_decode_ok(test, "Zm9v", (const u8 *)"foo", 3, false, BASE64_STD);
expect_decode_ok(test, "Zm9vYg", (const u8 *)"foob", 4, false, BASE64_STD);
expect_decode_ok(test, "Zm9vYmE", (const u8 *)"fooba", 5, false, BASE64_STD);
expect_decode_ok(test, "Zm9vYmFy", (const u8 *)"foobar", 6, false, BASE64_STD);
expect_decode_ok(test, "TWFu", (const u8 *)"Man", 3, false, BASE64_STD);
false, BASE64_STD);
(const u8 *)"ABCDEFGHIJKLMNOPQRSTUVWXYZ", 26, false, BASE64_STD);
(const u8 *)"abcdefghijklmnopqrstuvwxyz", 26, false, BASE64_STD);
false, BASE64_STD);
expect_decode_err(test, "Zg=!", 4, false, BASE64_STD);
expect_decode_err(test, "Zm$=", 4, false, BASE64_STD);
expect_decode_err(test, "Z===", 4, false, BASE64_STD);
expect_decode_err(test, "Zg=", 3, false, BASE64_STD);
expect_decode_err(test, "Zm9v====", 8, false, BASE64_STD);
expect_decode_err(test, "Zm==v", 4, false, BASE64_STD);
expect_decode_err(test, with_nul, 4, false, BASE64_STD);
n_std = base64_encode(sample1, sizeof(sample1), std_buf, false, BASE64_STD);
n_std = base64_encode(sample1, sizeof(sample1), std_buf, false, BASE64_STD);
run_perf_and_check(test, "64B", 64, BASE64_STD);
run_perf_and_check(test, "1KB", 1024, BASE64_STD);