diff options
Diffstat (limited to 'src/pubkey/rw')
-rw-r--r-- | src/pubkey/rw/rw.cpp | 49 | ||||
-rw-r--r-- | src/pubkey/rw/rw.h | 6 |
2 files changed, 0 insertions, 55 deletions
diff --git a/src/pubkey/rw/rw.cpp b/src/pubkey/rw/rw.cpp index 85b10a69d..a1df0649b 100644 --- a/src/pubkey/rw/rw.cpp +++ b/src/pubkey/rw/rw.cpp @@ -15,34 +15,6 @@ namespace Botan { /* -* Rabin-Williams Public Operation -*/ -BigInt RW_PublicKey::public_op(const BigInt& i) const - { - if((i > (n >> 1)) || i.is_negative()) - throw Invalid_Argument(algo_name() + "::public_op: i > n / 2 || i < 0"); - - BigInt r = core.public_op(i); - if(r % 16 == 12) return r; - if(r % 8 == 6) return 2*r; - - r = n - r; - if(r % 16 == 12) return r; - if(r % 8 == 6) return 2*r; - - throw Invalid_Argument(algo_name() + "::public_op: Invalid input"); - } - -/* -* Rabin-Williams Verification Function -*/ -SecureVector<byte> RW_PublicKey::verify(const byte in[], u32bit len) const - { - BigInt i(in, len); - return BigInt::encode(public_op(i)); - } - -/* * Create a Rabin-Williams private key */ RW_PrivateKey::RW_PrivateKey(RandomNumberGenerator& rng, @@ -74,27 +46,6 @@ RW_PrivateKey::RW_PrivateKey(RandomNumberGenerator& rng, } /* -* Rabin-Williams Signature Operation -*/ -SecureVector<byte> RW_PrivateKey::sign(const byte in[], u32bit len, - RandomNumberGenerator&) const - { - BigInt i(in, len); - if(i >= n || i % 16 != 12) - throw Invalid_Argument(algo_name() + "::sign: Invalid input"); - - BigInt r; - if(jacobi(i, n) == 1) r = core.private_op(i); - else r = core.private_op(i >> 1); - - r = std::min(r, n - r); - if(i != public_op(r)) - throw Self_Test_Failure(algo_name() + " private operation check failed"); - - return BigInt::encode_1363(r, n.bytes()); - } - -/* * Check Private Rabin-Williams Parameters */ bool RW_PrivateKey::check_key(RandomNumberGenerator& rng, bool strong) const diff --git a/src/pubkey/rw/rw.h b/src/pubkey/rw/rw.h index 688e1db7f..232051862 100644 --- a/src/pubkey/rw/rw.h +++ b/src/pubkey/rw/rw.h @@ -21,8 +21,6 @@ class BOTAN_DLL RW_PublicKey : public PK_Verifying_with_MR_Key, public: std::string algo_name() const { return "RW"; } - SecureVector<byte> verify(const byte[], u32bit) const; - RW_PublicKey(const AlgorithmIdentifier& alg_id, const MemoryRegion<byte>& key_bits) : IF_Scheme_PublicKey(alg_id, key_bits) @@ -38,7 +36,6 @@ class BOTAN_DLL RW_PublicKey : public PK_Verifying_with_MR_Key, protected: RW_PublicKey() {} - BigInt public_op(const BigInt&) const; }; /* @@ -63,9 +60,6 @@ class BOTAN_DLL RW_PrivateKey : public RW_PublicKey, RW_PrivateKey(RandomNumberGenerator& rng, u32bit bits, u32bit = 2); bool check_key(RandomNumberGenerator& rng, bool) const; - - SecureVector<byte> sign(const byte[], u32bit, - RandomNumberGenerator& rng) const; }; class BOTAN_DLL RW_Signature_Operation : public PK_Ops::Signature |