diff options
author | lloyd <[email protected]> | 2008-09-29 20:41:56 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2008-09-29 20:41:56 +0000 |
commit | 4f5482b113907d8cf3b39532a61daf2b4653574c (patch) | |
tree | 4180225fb57a8abda958a0b47cab08451ab6a30a /src/hash/sha1_ia32 | |
parent | 5a2001846f4470d90dff2a72896e1f19630e4fc2 (diff) |
Derive x86, x86-64, and SSE2 implementations of SHA-1 directly from SHA_160
Diffstat (limited to 'src/hash/sha1_ia32')
-rw-r--r-- | src/hash/sha1_ia32/info.txt | 2 | ||||
-rw-r--r-- | src/hash/sha1_ia32/sha1_ia32.cpp | 23 | ||||
-rw-r--r-- | src/hash/sha1_ia32/sha1_ia32.h | 15 |
3 files changed, 5 insertions, 35 deletions
diff --git a/src/hash/sha1_ia32/info.txt b/src/hash/sha1_ia32/info.txt index ff8b66ddc..45903f2d6 100644 --- a/src/hash/sha1_ia32/info.txt +++ b/src/hash/sha1_ia32/info.txt @@ -12,7 +12,7 @@ sha1_ia32.h <requires> asm_ia32 -mdx_hash +sha1 utils </requires> diff --git a/src/hash/sha1_ia32/sha1_ia32.cpp b/src/hash/sha1_ia32/sha1_ia32.cpp index 4e24b0793..ff6e67001 100644 --- a/src/hash/sha1_ia32/sha1_ia32.cpp +++ b/src/hash/sha1_ia32/sha1_ia32.cpp @@ -23,27 +23,4 @@ void SHA_160_IA32::hash(const byte input[]) botan_sha160_ia32_compress(digest, input, W); } -/************************************************* -* Copy out the digest * -*************************************************/ -void SHA_160_IA32::copy_out(byte output[]) - { - for(u32bit j = 0; j != OUTPUT_LENGTH; ++j) - output[j] = get_byte(j % 4, digest[j/4]); - } - -/************************************************* -* Clear memory of sensitive data * -*************************************************/ -void SHA_160_IA32::clear() throw() - { - MDx_HashFunction::clear(); - W.clear(); - digest[0] = 0x67452301; - digest[1] = 0xEFCDAB89; - digest[2] = 0x98BADCFE; - digest[3] = 0x10325476; - digest[4] = 0xC3D2E1F0; - } - } diff --git a/src/hash/sha1_ia32/sha1_ia32.h b/src/hash/sha1_ia32/sha1_ia32.h index ab9dd8ac2..e294cc42c 100644 --- a/src/hash/sha1_ia32/sha1_ia32.h +++ b/src/hash/sha1_ia32/sha1_ia32.h @@ -6,29 +6,22 @@ #ifndef BOTAN_SHA_160_IA32_H__ #define BOTAN_SHA_160_IA32_H__ -#include <botan/mdx_hash.h> +#include <botan/sha160.h> namespace Botan { /************************************************* * SHA-160 * *************************************************/ -class BOTAN_DLL SHA_160_IA32 : public MDx_HashFunction +class BOTAN_DLL SHA_160_IA32 : public SHA_160 { public: - void clear() throw(); - std::string name() const { return "SHA-160"; } HashFunction* clone() const { return new SHA_160_IA32; } - SHA_160_IA32() : MDx_HashFunction(20, 64, true, true) { clear(); } + // Note 81 instead of normal 80: IA-32 asm needs an extra temp + SHA_160_IA32() : SHA_160(81) {} private: void hash(const byte[]); - void copy_out(byte[]); - - SecureBuffer<u32bit, 5> digest; - - // Note 81 instead of normal 80: IA-32 asm needs an extra temp - SecureBuffer<u32bit, 81> W; }; } |