Skip to content

Latest commit

 

History

History
executable file
·
37 lines (33 loc) · 1.08 KB

README.md

File metadata and controls

executable file
·
37 lines (33 loc) · 1.08 KB

SHA1

void example(){
    const char *text = "quick brown fox jumps over the lazy dog";

    char hex[SHA1_HEX_SIZE];
    char base64[SHA1_BASE64_SIZE];

    // constructor can be empty or take a const char*
    sha1("The ")
        // can be chained
        // can add single chars
        .add(text[0])
        // number of bytes
        .add(&text[1], 4)
        // 0-terminated const char*
        .add(&text[5])
        // finalize must be called, otherwise the hash is not valid
        // after that, no more bytes should be added
        .finalize()
        // print the hash in hexadecimal, 0-terminated
        .print_hex(hex)
        // print the hash in base64, 0-terminated
        .print_base64(base64);

    printf("SHA1(The quick brown fox jumps over the lazy dog)\n");
    printf("\n");
    printf("hexadecimal\n");
    printf("calculated: %s\n", hex);
    printf("expected  : 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12\n");
    printf("\n");
    printf("base64 encoded\n");
    printf("calculated: %s\n", base64);
    printf("expected  : L9ThxnotKPzthJ7hu3bnORuT6xI=\n");
}