[SLOF] [PATCH 4/4] Add testprograms

Alexey Kardashevskiy aik at ozlabs.ru
Wed Jun 30 13:10:09 AEST 2021


What does this actually test? It runs sha384/etc but it is not comparing 
the outcome with known good values or anything like this.


On 16/06/2021 00:41, Stefan Berger wrote:
> ---
>   lib/libtpm/sha.c    | 42 ++++++++++++++++++++++++++++++
>   lib/libtpm/sha512.c | 62 +++++++++++++++++++++++++++++++++++++++++++++
>   2 files changed, 104 insertions(+)
> 
> diff --git a/lib/libtpm/sha.c b/lib/libtpm/sha.c
> index 98ab300..d8330f4 100644
> --- a/lib/libtpm/sha.c
> +++ b/lib/libtpm/sha.c
> @@ -197,3 +197,45 @@ void sha1(const uint8_t *data, uint32_t length, uint8_t *hash)
>   	sha1_do(&ctx, data, length);
>   	memcpy(hash, &ctx.h[0], 20);
>   }
> +
> +#ifdef MAIN
> +
> +#include <stdio.h>
> +// gcc -DMAIN sha.c -o sha-test -I ../../include -I ../../slof -I ../../lib/libc/include
> +int main(void)
> +{
> +    unsigned i, j;
> +    uint8_t hash[20];
> +    char buffer[70];
> +
> +    sha1("abc", 3, hash);
> +    for (i = 0; i < sizeof(hash); i++) {
> +        printf("%02x", hash[i]);
> +    }
> +    printf("\n");
> +
> +    sha1("", 0, hash);
> +    for (i = 0; i < sizeof(hash); i++) {
> +        printf("%02x", hash[i]);
> +    }
> +    printf("\n");
> +
> +    sha1("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", 448/8, hash);
> +    for (i = 0; i < sizeof(hash); i++) {
> +        printf("%02x", hash[i]);
> +    }
> +    printf("\n");
> +
> +    for (i = 54; i < sizeof(buffer); i++) {
> +        memset(buffer, 0, sizeof(buffer));
> +        for (j = 0; j <= i; j++)
> +	    buffer[j] = 'a';
> +        printf("input %d: %s\n", i, buffer);
> +        sha1(buffer, i, hash);
> +        for (j = 0; j < sizeof(hash); j++) {
> +            printf("%02x", hash[j]);
> +        }
> +        printf("\n");
> +    }
> +}
> +#endif
> diff --git a/lib/libtpm/sha512.c b/lib/libtpm/sha512.c
> index a59f659..addeacf 100644
> --- a/lib/libtpm/sha512.c
> +++ b/lib/libtpm/sha512.c
> @@ -241,3 +241,65 @@ void sha512(const uint8_t *data, uint32_t length, uint8_t *hash)
>   	sha512_do(&ctx, data, length);
>   	memcpy(hash, ctx.h, sizeof(ctx.h));
>   }
> +
> +
> +#ifdef MAIN
> +
> +#include <stdio.h>
> +// gcc -DMAIN sha512.c -o sha512-test -I ../../include -I ../../slof -I ../../lib/libc/include
> +int main(void)
> +{
> +    unsigned i, j;
> +    uint8_t hash[64];
> +    char buffer[128];
> +
> +    sha512("abc", 3, hash);
> +    for (i = 0; i < sizeof(hash); i++) {
> +        printf("%02x", hash[i]);
> +    }
> +    printf("\n");
> +
> +    sha384("abc", 3, hash);
> +    for (i = 0; i < 384/8; i++) {
> +        printf("%02x", hash[i]);
> +    }
> +    printf("\n");
> +
> +    sha512("", 0, hash);
> +    for (i = 0; i < sizeof(hash); i++) {
> +        printf("%02x", hash[i]);
> +    }
> +    printf("\n");
> +
> +    sha384("", 0, hash);
> +    for (i = 0; i < 384/8; i++) {
> +        printf("%02x", hash[i]);
> +    }
> +    printf("\n");
> +
> +    sha512("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", 448/8, hash);
> +    for (i = 0; i < sizeof(hash); i++) {
> +        printf("%02x", hash[i]);
> +    }
> +    printf("\n");
> +
> +    sha384("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", 448/8, hash);
> +    for (i = 0; i < 384/8; i++) {
> +        printf("%02x", hash[i]);
> +    }
> +    printf("\n");
> +
> +
> +    for (i = 110; i < sizeof(buffer); i++) {
> +        memset(buffer, 0, sizeof(buffer));
> +        for (j = 0; j <= i; j++)
> +	    buffer[j] = 'a';
> +        printf("input %d: %s\n", i, buffer);
> +        sha512(buffer, i, hash);
> +        for (j = 0; j < sizeof(hash); j++) {
> +            printf("%02x", hash[j]);
> +        }
> +        printf("\n");
> +    }
> +}
> +#endif
> 

-- 
Alexey


More information about the SLOF mailing list