aboutsummaryrefslogtreecommitdiffstats
path: root/src/pk_pad/emsa1/emsa1.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/emsa1/emsa1.cpp
parent62faac373c07cfe10bc8c309e89ebdd30d8e5eaa (diff)
Shuffle things around. Add NIST X.509 test to build.
Diffstat (limited to 'src/pk_pad/emsa1/emsa1.cpp')
-rw-r--r--src/pk_pad/emsa1/emsa1.cpp105
1 files changed, 0 insertions, 105 deletions
diff --git a/src/pk_pad/emsa1/emsa1.cpp b/src/pk_pad/emsa1/emsa1.cpp
deleted file mode 100644
index 2358023f8..000000000
--- a/src/pk_pad/emsa1/emsa1.cpp
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
-* EMSA1
-* (C) 1999-2007 Jack Lloyd
-*
-* Distributed under the terms of the Botan license
-*/
-
-#include <botan/emsa1.h>
-
-namespace Botan {
-
-namespace {
-
-secure_vector<byte> emsa1_encoding(const secure_vector<byte>& msg,
- size_t output_bits)
- {
- if(8*msg.size() <= output_bits)
- return msg;
-
- size_t shift = 8*msg.size() - output_bits;
-
- size_t byte_shift = shift / 8, bit_shift = shift % 8;
- secure_vector<byte> digest(msg.size() - byte_shift);
-
- for(size_t j = 0; j != msg.size() - byte_shift; ++j)
- digest[j] = msg[j];
-
- if(bit_shift)
- {
- byte carry = 0;
- for(size_t j = 0; j != digest.size(); ++j)
- {
- byte temp = digest[j];
- digest[j] = (temp >> bit_shift) | carry;
- carry = (temp << (8 - bit_shift));
- }
- }
- return digest;
- }
-
-}
-
-/*
-* EMSA1 Update Operation
-*/
-void EMSA1::update(const byte input[], size_t length)
- {
- hash->update(input, length);
- }
-
-/*
-* Return the raw (unencoded) data
-*/
-secure_vector<byte> EMSA1::raw_data()
- {
- return hash->final();
- }
-
-/*
-* EMSA1 Encode Operation
-*/
-secure_vector<byte> EMSA1::encoding_of(const secure_vector<byte>& msg,
- size_t output_bits,
- RandomNumberGenerator&)
- {
- if(msg.size() != hash->output_length())
- throw Encoding_Error("EMSA1::encoding_of: Invalid size for input");
- return emsa1_encoding(msg, output_bits);
- }
-
-/*
-* EMSA1 Decode/Verify Operation
-*/
-bool EMSA1::verify(const secure_vector<byte>& coded,
- const secure_vector<byte>& raw, size_t key_bits)
- {
- try {
- if(raw.size() != hash->output_length())
- throw Encoding_Error("EMSA1::encoding_of: Invalid size for input");
-
- secure_vector<byte> our_coding = emsa1_encoding(raw, key_bits);
-
- if(our_coding == coded) return true;
- if(our_coding.empty() || our_coding[0] != 0) return false;
- if(our_coding.size() <= coded.size()) return false;
-
- size_t offset = 0;
- while(offset < our_coding.size() && our_coding[offset] == 0)
- ++offset;
- if(our_coding.size() - offset != coded.size())
- return false;
-
- for(size_t j = 0; j != coded.size(); ++j)
- if(coded[j] != our_coding[j+offset])
- return false;
-
- return true;
- }
- catch(Invalid_Argument)
- {
- return false;
- }
- }
-
-}