aboutsummaryrefslogtreecommitdiffstats
path: root/src/pk_pad/emsa2/emsa2.cpp
diff options
context:
space:
mode:
authorlloyd <[email protected]>2014-01-01 21:20:55 +0000
committerlloyd <[email protected]>2014-01-01 21:20:55 +0000
commit197dc467dec28a04c3b2f30da7cef122dfbb13e9 (patch)
treecdbd3ddaec051c72f0a757db461973d90c37b97a /src/pk_pad/emsa2/emsa2.cpp
parent62faac373c07cfe10bc8c309e89ebdd30d8e5eaa (diff)
Shuffle things around. Add NIST X.509 test to build.
Diffstat (limited to 'src/pk_pad/emsa2/emsa2.cpp')
-rw-r--r--src/pk_pad/emsa2/emsa2.cpp112
1 files changed, 0 insertions, 112 deletions
diff --git a/src/pk_pad/emsa2/emsa2.cpp b/src/pk_pad/emsa2/emsa2.cpp
deleted file mode 100644
index 02a3dbe72..000000000
--- a/src/pk_pad/emsa2/emsa2.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
-* EMSA2
-* (C) 1999-2007 Jack Lloyd
-*
-* Distributed under the terms of the Botan license
-*/
-
-#include <botan/emsa2.h>
-#include <botan/hash_id.h>
-
-namespace Botan {
-
-namespace {
-
-/*
-* EMSA2 Encode Operation
-*/
-secure_vector<byte> emsa2_encoding(const secure_vector<byte>& msg,
- size_t output_bits,
- const secure_vector<byte>& empty_hash,
- byte hash_id)
- {
- const size_t HASH_SIZE = empty_hash.size();
-
- size_t output_length = (output_bits + 1) / 8;
-
- if(msg.size() != HASH_SIZE)
- throw Encoding_Error("EMSA2::encoding_of: Bad input length");
- if(output_length < HASH_SIZE + 4)
- throw Encoding_Error("EMSA2::encoding_of: Output length is too small");
-
- bool empty = true;
- for(size_t j = 0; j != HASH_SIZE; ++j)
- if(empty_hash[j] != msg[j])
- empty = false;
-
- secure_vector<byte> output(output_length);
-
- output[0] = (empty ? 0x4B : 0x6B);
- output[output_length - 3 - HASH_SIZE] = 0xBA;
- set_mem(&output[1], output_length - 4 - HASH_SIZE, 0xBB);
- buffer_insert(output, output_length - (HASH_SIZE + 2), &msg[0], msg.size());
- output[output_length-2] = hash_id;
- output[output_length-1] = 0xCC;
-
- return output;
- }
-
-}
-
-/*
-* EMSA2 Update Operation
-*/
-void EMSA2::update(const byte input[], size_t length)
- {
- hash->update(input, length);
- }
-
-/*
-* Return the raw (unencoded) data
-*/
-secure_vector<byte> EMSA2::raw_data()
- {
- return hash->final();
- }
-
-/*
-* EMSA2 Encode Operation
-*/
-secure_vector<byte> EMSA2::encoding_of(const secure_vector<byte>& msg,
- size_t output_bits,
- RandomNumberGenerator&)
- {
- return emsa2_encoding(msg, output_bits, empty_hash, hash_id);
- }
-
-/*
-* EMSA2 Verify Operation
-*/
-bool EMSA2::verify(const secure_vector<byte>& coded,
- const secure_vector<byte>& raw,
- size_t key_bits)
- {
- try
- {
- return (coded == emsa2_encoding(raw, key_bits,
- empty_hash, hash_id));
- }
- catch(...)
- {
- return false;
- }
- }
-
-/*
-* EMSA2 Constructor
-*/
-EMSA2::EMSA2(HashFunction* hash_in) : hash(hash_in)
- {
- empty_hash = hash->final();
-
- const std::string hash_name = hash->name();
- hash_id = ieee1363_hash_id(hash_name);
-
- if(hash_id == 0)
- {
- delete hash;
- throw Encoding_Error("EMSA2 no hash identifier for " + hash_name);
- }
- }
-
-}