示例#1
0
static void first_tests(void)
{
    static const char   encoded[]   =   "YWJjZGVm Z2hpamtsbW5vcHFyc3#R1dnd4eXp@BQkNERUZHSEl~KS0xNTk9QUVJTVFVWV1hZWjAxMjM0\r\nNTY=";

    B64_RC      rc;
    size_t      n       =   b64_decode2(encoded, strlen(encoded) - 1, NULL, 0, 0, NULL, &rc);
    char        *dest   =   (char*)malloc(n);
    char const  *badChar;
    size_t      n2;

    /* Ignoring all bad content. */

    n2 = b64_decode2(encoded, strlen(encoded) - 1, dest, n, 0, &badChar, &rc);

    if(0 == n2)
    {
        printf("Unexpected failure, when ignoring all bad characters; bad=\"%s\"\n", badChar);
    }
    else
    {
#if 0
        printf("Decoded: %.*s\n", n2, dest);
#endif /* 0 */
    }

    /* Ignoring bad whitespace. */

    n2 = b64_decode2(encoded, strlen(encoded) - 1, dest, n, B64_F_STOP_ON_UNEXPECTED_WS, &badChar, &rc);

    if(0 == n2)
    {
#if 0
        printf("Expected failure, when stopping on bad whitespace characters; bad=\"%s\"\n", badChar);
#endif /* 0 */
    }
    else
    {
        printf("Decoded: %.*s\n", (int)n2, dest);
    }

    /* Ignoring bad whitespace. */

    n2 = b64_decode2(encoded, strlen(encoded) - 1, dest, n, B64_F_STOP_ON_UNKNOWN_CHAR, &badChar, &rc);

    if(0 == n2)
    {
#if 0
        printf("Expected failure, when stopping on unrecognised characters; bad=\"%s\"\n", badChar);
#endif /* 0 */
    }
    else
    {
        printf("Decoded: %.*s\n", (int)n2, dest);
    }
}
示例#2
0
static void test_2_00()
{
    char const      enc[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ=";
    unsigned char   bytes[10];
    B64_RC          rc  =   B64_RC_OK;
    size_t          n   =   b64_decode2(enc, STLSOFT_NUM_ELEMENTS(enc) - 1u, &bytes[0], sizeof(bytes), 0, NULL, &rc);

    XTESTS_TEST_INTEGER_EQUAL(0u, n);
    XTESTS_TEST_ENUM_EQUAL(B64_RC_INSUFFICIENT_BUFFER, rc);
}