diff --git a/src/crypto/axtls_sha1.c b/src/crypto/axtls_sha1.c new file mode 100644 index 00000000..17c08797 --- /dev/null +++ b/src/crypto/axtls_sha1.c @@ -0,0 +1,26 @@ +#include "crypto/axtls/crypto.h" +#include +#include + +static void sha1_init ( void *ctx ) { + SHA1Init ( ctx ); +} + +static void sha1_update ( void *ctx, const void *data, void *dst __unused, + size_t len ) { + SHA1Update ( ctx, data, len ); +} + +static void sha1_final ( void *ctx, void *out ) { + SHA1Final ( ctx, out ); +} + +struct crypto_algorithm sha1_algorithm = { + .name = "sha1", + .ctxsize = sizeof ( SHA1_CTX ), + .blocksize = 64, + .digestsize = SHA1_SIZE, + .init = sha1_init, + .encode = sha1_update, + .final = sha1_final, +}; diff --git a/src/include/gpxe/sha1.h b/src/include/gpxe/sha1.h new file mode 100644 index 00000000..1425d54c --- /dev/null +++ b/src/include/gpxe/sha1.h @@ -0,0 +1,8 @@ +#ifndef _GPXE_SHA1_H +#define _GPXE_SHA1_H + +struct crypto_algorithm; + +extern struct crypto_algorithm sha1_algorithm; + +#endif /* _GPXE_SHA1_H */