Added Appro's SSSE3 SHA implementations
[gnutls:gnutls.git] / lib / accelerated / x86 / sha-padlock.h
1 #ifndef SHA_PADLOCK_H
2 #define SHA_PADLOCK_H
3
4 #include <nettle/sha.h>
5
6 void padlock_sha1_oneshot(void *ctx, const void *inp, size_t len);
7 void padlock_sha256_oneshot(void *ctx, const void *inp, size_t len);
8
9 void padlock_sha1_blocks(unsigned int *ctx, const void *inp,
10                          size_t blocks);
11 void padlock_sha256_blocks(unsigned int *ctx, const void *inp,
12                            size_t blocks);
13 void padlock_sha512_blocks(unsigned int *ctx, const void *inp,
14                            size_t blocks);
15
16 int wrap_padlock_hash_fast(gnutls_digest_algorithm_t algo,
17                            const void *text, size_t text_size,
18                            void *digest);
19
20 void padlock_sha1_update(struct sha1_ctx *ctx,
21                          unsigned length, const uint8_t * data);
22 void padlock_sha256_update(struct sha256_ctx *ctx,
23                            unsigned length, const uint8_t * data);
24 void padlock_sha512_update(struct sha512_ctx *ctx,
25                            unsigned length, const uint8_t * data);
26
27 extern const struct nettle_hash padlock_sha1;
28 extern const struct nettle_hash padlock_sha224;
29 extern const struct nettle_hash padlock_sha256;
30 extern const struct nettle_hash padlock_sha384;
31 extern const struct nettle_hash padlock_sha512;
32
33 extern const gnutls_crypto_mac_st hmac_sha_padlock_nano_struct;
34 extern const gnutls_crypto_digest_st sha_padlock_nano_struct;
35
36 #endif