diff options
author | lloyd <[email protected]> | 2010-09-03 13:18:54 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2010-09-03 13:18:54 +0000 |
commit | 449c9b9467c3e8dc08015094100162aea209623e (patch) | |
tree | cef38093356e6418b46640b43505f861db139ffe | |
parent | 466548a644640fc73b24c8a4185a317f780a698f (diff) |
Use the standalone version of the hex decoder instead of the wrapper that
previously existed in misc.cpp that emulated it via a pipe and filter.
-rw-r--r-- | checks/bench.cpp | 1 | ||||
-rw-r--r-- | checks/common.h | 6 | ||||
-rw-r--r-- | checks/dolook.cpp | 8 | ||||
-rw-r--r-- | checks/ec_tests.cpp | 108 | ||||
-rw-r--r-- | checks/ecdsa.cpp | 16 | ||||
-rw-r--r-- | checks/misc.cpp | 27 | ||||
-rw-r--r-- | checks/pk.cpp | 55 | ||||
-rw-r--r-- | checks/validate.cpp | 3 |
8 files changed, 102 insertions, 122 deletions
diff --git a/checks/bench.cpp b/checks/bench.cpp index 8d35ac1c4..4e39bdf70 100644 --- a/checks/bench.cpp +++ b/checks/bench.cpp @@ -15,6 +15,7 @@ #include <botan/parsing.h> #include <botan/symkey.h> #include <botan/time.h> +#include <botan/hex.h> #include "common.h" #include "bench.h" diff --git a/checks/common.h b/checks/common.h index 1b1e89bbf..493e2fc74 100644 --- a/checks/common.h +++ b/checks/common.h @@ -11,6 +11,7 @@ #include <botan/secmem.h> #include <botan/filter.h> #include <botan/rng.h> +#include <botan/hex.h> using Botan::byte; using Botan::u32bit; @@ -21,9 +22,6 @@ void strip_newlines(std::string& line); void strip(std::string& line); std::vector<std::string> parse(const std::string& line); -std::string hex_encode(const byte in[], u32bit len); -Botan::SecureVector<byte> decode_hex(const std::string&); - Botan::Filter* lookup(const std::string& algname, const std::vector<std::string>& params); @@ -75,7 +73,7 @@ class Fixed_Output_RNG : public Botan::RandomNumberGenerator } Fixed_Output_RNG(const std::string& in_str) { - Botan::SecureVector<byte> in = decode_hex(in_str); + Botan::SecureVector<byte> in = Botan::hex_decode(in_str); buf.insert(buf.end(), in.begin(), in.begin() + in.size()); } diff --git a/checks/dolook.cpp b/checks/dolook.cpp index 71bb65725..92f7381c2 100644 --- a/checks/dolook.cpp +++ b/checks/dolook.cpp @@ -175,19 +175,19 @@ Filter* lookup_rng(const std::string& algname, #if defined(BOTAN_HAS_DES) if(algname == "X9.31-RNG(TripleDES)") prng = new ANSI_X931_RNG(new TripleDES, - new Fixed_Output_RNG(decode_hex(key))); + new Fixed_Output_RNG(hex_decode(key))); #endif #if defined(BOTAN_HAS_AES) if(algname == "X9.31-RNG(AES-128)") prng = new ANSI_X931_RNG(new AES_128, - new Fixed_Output_RNG(decode_hex(key))); + new Fixed_Output_RNG(hex_decode(key))); else if(algname == "X9.31-RNG(AES-192)") prng = new ANSI_X931_RNG(new AES_192, - new Fixed_Output_RNG(decode_hex(key))); + new Fixed_Output_RNG(hex_decode(key))); else if(algname == "X9.31-RNG(AES-256)") prng = new ANSI_X931_RNG(new AES_256, - new Fixed_Output_RNG(decode_hex(key))); + new Fixed_Output_RNG(hex_decode(key))); #endif #endif diff --git a/checks/ec_tests.cpp b/checks/ec_tests.cpp index 9362aa371..39ca1ded5 100644 --- a/checks/ec_tests.cpp +++ b/checks/ec_tests.cpp @@ -71,10 +71,10 @@ void test_point_turn_on_sp_red_mul() std::string a_secp = "ffffffffffffffffffffffffffffffff7ffffffc"; std::string b_secp = "1c97befc54bd7a8b65acf89f81d4d4adc565fa45"; std::string G_secp_comp = "024a96b5688ef573284664698968c38bb913cbfc82"; - SecureVector<byte> sv_p_secp = decode_hex(p_secp); - SecureVector<byte> sv_a_secp = decode_hex(a_secp); - SecureVector<byte> sv_b_secp = decode_hex(b_secp); - SecureVector<byte> sv_G_secp_comp = decode_hex(G_secp_comp); + SecureVector<byte> sv_p_secp = hex_decode(p_secp); + SecureVector<byte> sv_a_secp = hex_decode(a_secp); + SecureVector<byte> sv_b_secp = hex_decode(b_secp); + SecureVector<byte> sv_G_secp_comp = hex_decode(G_secp_comp); BigInt bi_p_secp = BigInt::decode(sv_p_secp.begin(), sv_p_secp.size()); BigInt bi_a_secp = BigInt::decode(sv_a_secp.begin(), sv_a_secp.size()); BigInt bi_b_secp = BigInt::decode(sv_b_secp.begin(), sv_b_secp.size()); @@ -134,10 +134,10 @@ void test_coordinates() std::string a_secp = "ffffffffffffffffffffffffffffffff7ffffffc"; std::string b_secp = "1c97befc54bd7a8b65acf89f81d4d4adc565fa45"; std::string G_secp_comp = "024a96b5688ef573284664698968c38bb913cbfc82"; - SecureVector<byte> sv_p_secp = decode_hex ( p_secp ); - SecureVector<byte> sv_a_secp = decode_hex ( a_secp ); - SecureVector<byte> sv_b_secp = decode_hex ( b_secp ); - SecureVector<byte> sv_G_secp_comp = decode_hex ( G_secp_comp ); + SecureVector<byte> sv_p_secp = hex_decode ( p_secp ); + SecureVector<byte> sv_a_secp = hex_decode ( a_secp ); + SecureVector<byte> sv_b_secp = hex_decode ( b_secp ); + SecureVector<byte> sv_G_secp_comp = hex_decode ( G_secp_comp ); BigInt bi_p_secp = BigInt::decode ( sv_p_secp.begin(), sv_p_secp.size() ); BigInt bi_a_secp = BigInt::decode ( sv_a_secp.begin(), sv_a_secp.size() ); @@ -191,7 +191,7 @@ void test_point_mult () const CurveGFp& curve = secp160r1.get_curve(); std::string G_secp_comp = "024a96b5688ef573284664698968c38bb913cbfc82"; - SecureVector<byte> sv_G_secp_comp = decode_hex(G_secp_comp); + SecureVector<byte> sv_G_secp_comp = hex_decode(G_secp_comp); PointGFp p_G = OS2ECP(sv_G_secp_comp, curve); BigInt d_U("0xaa374ffc3ce144e6b073307972cb6d57b2a4e982"); @@ -210,10 +210,10 @@ void test_point_negative() std::string a_secp = "ffffffffffffffffffffffffffffffff7ffffffc"; std::string b_secp = "1c97befc54bd7a8b65acf89f81d4d4adc565fa45"; std::string G_secp_comp = "024a96b5688ef573284664698968c38bb913cbfc82"; - SecureVector<byte> sv_p_secp = decode_hex ( p_secp ); - SecureVector<byte> sv_a_secp = decode_hex ( a_secp ); - SecureVector<byte> sv_b_secp = decode_hex ( b_secp ); - SecureVector<byte> sv_G_secp_comp = decode_hex ( G_secp_comp ); + SecureVector<byte> sv_p_secp = hex_decode ( p_secp ); + SecureVector<byte> sv_a_secp = hex_decode ( a_secp ); + SecureVector<byte> sv_b_secp = hex_decode ( b_secp ); + SecureVector<byte> sv_G_secp_comp = hex_decode ( G_secp_comp ); BigInt bi_p_secp = BigInt::decode ( sv_p_secp.begin(), sv_p_secp.size() ); BigInt bi_a_secp = BigInt::decode ( sv_a_secp.begin(), sv_a_secp.size() ); BigInt bi_b_secp = BigInt::decode ( sv_b_secp.begin(), sv_b_secp.size() ); @@ -237,7 +237,7 @@ void test_zeropoint() std::string G_secp_comp = "024a96b5688ef573284664698968c38bb913cbfc82"; - SecureVector<byte> sv_G_secp_comp = decode_hex ( G_secp_comp ); + SecureVector<byte> sv_G_secp_comp = hex_decode ( G_secp_comp ); BigInt bi_p_secp("0xffffffffffffffffffffffffffffffff7fffffff"); BigInt bi_a_secp("0xffffffffffffffffffffffffffffffff7ffffffc"); BigInt bi_b_secp("0x1c97befc54bd7a8b65acf89f81d4d4adc565fa45"); @@ -286,7 +286,7 @@ void test_calc_with_zeropoint() std::cout << "." << std::flush; std::string G_secp_comp = "024a96b5688ef573284664698968c38bb913cbfc82"; - SecureVector<byte> sv_G_secp_comp = decode_hex ( G_secp_comp ); + SecureVector<byte> sv_G_secp_comp = hex_decode ( G_secp_comp ); BigInt bi_p_secp("0xffffffffffffffffffffffffffffffff7fffffff"); BigInt bi_a_secp("0xffffffffffffffffffffffffffffffff7ffffffc"); BigInt bi_b_secp("0x1c97befc54bd7a8b65acf89f81d4d4adc565fa45"); @@ -322,10 +322,10 @@ void test_add_point() std::string a_secp = "ffffffffffffffffffffffffffffffff7ffffffc"; std::string b_secp = "1c97befc54bd7a8b65acf89f81d4d4adc565fa45"; std::string G_secp_comp = "024a96b5688ef573284664698968c38bb913cbfc82"; - SecureVector<byte> sv_p_secp = decode_hex ( p_secp ); - SecureVector<byte> sv_a_secp = decode_hex ( a_secp ); - SecureVector<byte> sv_b_secp = decode_hex ( b_secp ); - SecureVector<byte> sv_G_secp_comp = decode_hex ( G_secp_comp ); + SecureVector<byte> sv_p_secp = hex_decode ( p_secp ); + SecureVector<byte> sv_a_secp = hex_decode ( a_secp ); + SecureVector<byte> sv_b_secp = hex_decode ( b_secp ); + SecureVector<byte> sv_G_secp_comp = hex_decode ( G_secp_comp ); BigInt bi_p_secp = BigInt::decode ( sv_p_secp.begin(), sv_p_secp.size() ); BigInt bi_a_secp = BigInt::decode ( sv_a_secp.begin(), sv_a_secp.size() ); BigInt bi_b_secp = BigInt::decode ( sv_b_secp.begin(), sv_b_secp.size() ); @@ -358,10 +358,10 @@ void test_sub_point() std::string a_secp = "ffffffffffffffffffffffffffffffff7ffffffc"; std::string b_secp = "1c97befc54bd7a8b65acf89f81d4d4adc565fa45"; std::string G_secp_comp = "024a96b5688ef573284664698968c38bb913cbfc82"; - SecureVector<byte> sv_p_secp = decode_hex ( p_secp ); - SecureVector<byte> sv_a_secp = decode_hex ( a_secp ); - SecureVector<byte> sv_b_secp = decode_hex ( b_secp ); - SecureVector<byte> sv_G_secp_comp = decode_hex ( G_secp_comp ); + SecureVector<byte> sv_p_secp = hex_decode ( p_secp ); + SecureVector<byte> sv_a_secp = hex_decode ( a_secp ); + SecureVector<byte> sv_b_secp = hex_decode ( b_secp ); + SecureVector<byte> sv_G_secp_comp = hex_decode ( G_secp_comp ); BigInt bi_p_secp = BigInt::decode ( sv_p_secp.begin(), sv_p_secp.size() ); BigInt bi_a_secp = BigInt::decode ( sv_a_secp.begin(), sv_a_secp.size() ); BigInt bi_b_secp = BigInt::decode ( sv_b_secp.begin(), sv_b_secp.size() ); @@ -393,10 +393,10 @@ void test_mult_point() std::string a_secp = "ffffffffffffffffffffffffffffffff7ffffffc"; std::string b_secp = "1c97befc54bd7a8b65acf89f81d4d4adc565fa45"; std::string G_secp_comp = "024a96b5688ef573284664698968c38bb913cbfc82"; - SecureVector<byte> sv_p_secp = decode_hex ( p_secp ); - SecureVector<byte> sv_a_secp = decode_hex ( a_secp ); - SecureVector<byte> sv_b_secp = decode_hex ( b_secp ); - SecureVector<byte> sv_G_secp_comp = decode_hex ( G_secp_comp ); + SecureVector<byte> sv_p_secp = hex_decode ( p_secp ); + SecureVector<byte> sv_a_secp = hex_decode ( a_secp ); + SecureVector<byte> sv_b_secp = hex_decode ( b_secp ); + SecureVector<byte> sv_G_secp_comp = hex_decode ( G_secp_comp ); BigInt bi_p_secp = BigInt::decode ( sv_p_secp.begin(), sv_p_secp.size() ); BigInt bi_a_secp = BigInt::decode ( sv_a_secp.begin(), sv_a_secp.size() ); BigInt bi_b_secp = BigInt::decode ( sv_b_secp.begin(), sv_b_secp.size() ); @@ -422,10 +422,10 @@ void test_basic_operations() std::string a_secp = "ffffffffffffffffffffffffffffffff7ffffffc"; std::string b_secp = "1c97befc54bd7a8b65acf89f81d4d4adc565fa45"; std::string G_secp_comp = "024a96b5688ef573284664698968c38bb913cbfc82"; - SecureVector<byte> sv_p_secp = decode_hex ( p_secp ); - SecureVector<byte> sv_a_secp = decode_hex ( a_secp ); - SecureVector<byte> sv_b_secp = decode_hex ( b_secp ); - SecureVector<byte> sv_G_secp_comp = decode_hex ( G_secp_comp ); + SecureVector<byte> sv_p_secp = hex_decode ( p_secp ); + SecureVector<byte> sv_a_secp = hex_decode ( a_secp ); + SecureVector<byte> sv_b_secp = hex_decode ( b_secp ); + SecureVector<byte> sv_G_secp_comp = hex_decode ( G_secp_comp ); BigInt bi_p_secp = BigInt::decode ( sv_p_secp.begin(), sv_p_secp.size() ); BigInt bi_a_secp = BigInt::decode ( sv_a_secp.begin(), sv_a_secp.size() ); BigInt bi_b_secp = BigInt::decode ( sv_b_secp.begin(), sv_b_secp.size() ); @@ -485,10 +485,10 @@ void test_enc_dec_compressed_160() std::string G_secp_comp = "024A96B5688EF573284664698968C38BB913CBFC82"; std::string G_order_secp_comp = "0100000000000000000001F4C8F927AED3CA752257"; - SecureVector<byte> sv_p_secp = decode_hex ( p_secp ); - SecureVector<byte> sv_a_secp = decode_hex ( a_secp ); - SecureVector<byte> sv_b_secp = decode_hex ( b_secp ); - SecureVector<byte> sv_G_secp_comp = decode_hex ( G_secp_comp ); + SecureVector<byte> sv_p_secp = hex_decode ( p_secp ); + SecureVector<byte> sv_a_secp = hex_decode ( a_secp ); + SecureVector<byte> sv_b_secp = hex_decode ( b_secp ); + SecureVector<byte> sv_G_secp_comp = hex_decode ( G_secp_comp ); BigInt bi_p_secp = BigInt::decode ( sv_p_secp.begin(), sv_p_secp.size() ); BigInt bi_a_secp = BigInt::decode ( sv_a_secp.begin(), sv_a_secp.size() ); @@ -514,10 +514,10 @@ void test_enc_dec_compressed_256() std::string G_secp_comp = "036B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296"; std::string G_order_secp_comp = "ffffffff00000000ffffffffffffffffBCE6FAADA7179E84F3B9CAC2FC632551"; - SecureVector<byte> sv_p_secp = decode_hex ( p_secp ); - SecureVector<byte> sv_a_secp = decode_hex ( a_secp ); - SecureVector<byte> sv_b_secp = decode_hex ( b_secp ); - SecureVector<byte> sv_G_secp_comp = decode_hex ( G_secp_comp ); + SecureVector<byte> sv_p_secp = hex_decode ( p_secp ); + SecureVector<byte> sv_a_secp = hex_decode ( a_secp ); + SecureVector<byte> sv_b_secp = hex_decode ( b_secp ); + SecureVector<byte> sv_G_secp_comp = hex_decode ( G_secp_comp ); BigInt bi_p_secp = BigInt::decode ( sv_p_secp.begin(), sv_p_secp.size() ); BigInt bi_a_secp = BigInt::decode ( sv_a_secp.begin(), sv_a_secp.size() ); @@ -545,10 +545,10 @@ void test_enc_dec_uncompressed_112() std::string G_secp_uncomp = "044BA30AB5E892B4E1649DD0928643ADCD46F5882E3747DEF36E956E97"; std::string G_order_secp_uncomp = "36DF0AAFD8B8D7597CA10520D04B"; - SecureVector<byte> sv_p_secp = decode_hex ( p_secp ); - SecureVector<byte> sv_a_secp = decode_hex ( a_secp ); - SecureVector<byte> sv_b_secp = decode_hex ( b_secp ); - SecureVector<byte> sv_G_secp_uncomp = decode_hex ( G_secp_uncomp ); + SecureVector<byte> sv_p_secp = hex_decode ( p_secp ); + SecureVector<byte> sv_a_secp = hex_decode ( a_secp ); + SecureVector<byte> sv_b_secp = hex_decode ( b_secp ); + SecureVector<byte> sv_G_secp_uncomp = hex_decode ( G_secp_uncomp ); BigInt bi_p_secp = BigInt::decode ( sv_p_secp.begin(), sv_p_secp.size() ); BigInt bi_a_secp = BigInt::decode ( sv_a_secp.begin(), sv_a_secp.size() ); @@ -574,10 +574,10 @@ void test_enc_dec_uncompressed_521() std::string G_secp_uncomp = "0400C6858E06B70404E9CD9E3ECB662395B4429C648139053FB521F828AF606B4D3DBAA14B5E77EFE75928FE1DC127A2ffA8DE3348B3C1856A429BF97E7E31C2E5BD66011839296A789A3BC0045C8A5FB42C7D1BD998F54449579B446817AFBD17273E662C97EE72995EF42640C550B9013FAD0761353C7086A272C24088BE94769FD16650"; std::string G_order_secp_uncomp = "01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffFA51868783BF2F966B7FCC0148F709A5D03BB5C9B8899C47AEBB6FB71E91386409"; - SecureVector<byte> sv_p_secp = decode_hex ( p_secp ); - SecureVector<byte> sv_a_secp = decode_hex ( a_secp ); - SecureVector<byte> sv_b_secp = decode_hex ( b_secp ); - SecureVector<byte> sv_G_secp_uncomp = decode_hex ( G_secp_uncomp ); + SecureVector<byte> sv_p_secp = hex_decode ( p_secp ); + SecureVector<byte> sv_a_secp = hex_decode ( a_secp ); + SecureVector<byte> sv_b_secp = hex_decode ( b_secp ); + SecureVector<byte> sv_G_secp_uncomp = hex_decode ( G_secp_uncomp ); BigInt bi_p_secp = BigInt::decode ( sv_p_secp.begin(), sv_p_secp.size() ); BigInt bi_a_secp = BigInt::decode ( sv_a_secp.begin(), sv_a_secp.size() ); @@ -606,10 +606,10 @@ void test_enc_dec_uncompressed_521_prime_too_large() std::string G_secp_uncomp = "0400C6858E06B70404E9CD9E3ECB662395B4429C648139053FB521F828AF606B4D3DBAA14B5E77EFE75928FE1DC127A2ffA8DE3348B3C1856A429BF97E7E31C2E5BD66011839296A789A3BC0045C8A5FB42C7D1BD998F54449579B446817AFBD17273E662C97EE72995EF42640C550B9013FAD0761353C7086A272C24088BE94769FD16650"; std::string G_order_secp_uncomp = "01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffFA51868783BF2F966B7FCC0148F709A5D03BB5C9B8899C47AEBB6FB71E91386409"; - SecureVector<byte> sv_p_secp = decode_hex ( p_secp ); - SecureVector<byte> sv_a_secp = decode_hex ( a_secp ); - SecureVector<byte> sv_b_secp = decode_hex ( b_secp ); - SecureVector<byte> sv_G_secp_uncomp = decode_hex ( G_secp_uncomp ); + SecureVector<byte> sv_p_secp = hex_decode ( p_secp ); + SecureVector<byte> sv_a_secp = hex_decode ( a_secp ); + SecureVector<byte> sv_b_secp = hex_decode ( b_secp ); + SecureVector<byte> sv_G_secp_uncomp = hex_decode ( G_secp_uncomp ); BigInt bi_p_secp = BigInt::decode ( sv_p_secp.begin(), sv_p_secp.size() ); BigInt bi_a_secp = BigInt::decode ( sv_a_secp.begin(), sv_a_secp.size() ); @@ -647,7 +647,7 @@ void test_gfp_store_restore() std::string storrage = hex_encode(sv_mes, sv_mes.size()); // restore point (from std::string) - SecureVector<byte> sv_new_point = decode_hex(storrage); + SecureVector<byte> sv_new_point = hex_decode(storrage); PointGFp new_p = OS2ECP(sv_new_point, dom_pars.get_curve()); CHECK_MESSAGE( p == new_p, "original and restored point are different!"); @@ -661,7 +661,7 @@ void test_cdc_curve_33() std::string G_secp_uncomp = "04081523d03d4f12cd02879dea4bf6a4f3a7df26ed888f10c5b2235a1274c386a2f218300dee6ed217841164533bcdc903f07a096f9fbf4ee95bac098a111f296f5830fe5c35b3e344d5df3a2256985f64fbe6d0edcc4c61d18bef681dd399df3d0194c5a4315e012e0245ecea56365baa9e8be1f7"; - SecureVector<byte> sv_G_uncomp = decode_hex ( G_secp_uncomp ); + SecureVector<byte> sv_G_uncomp = hex_decode ( G_secp_uncomp ); BigInt bi_p_secp = BigInt("2117607112719756483104013348936480976596328609518055062007450442679169492999007105354629105748524349829824407773719892437896937279095106809"); BigInt bi_a_secp("0xa377dede6b523333d36c78e9b0eaa3bf48ce93041f6d4fc34014d08f6833807498deedd4290101c5866e8dfb589485d13357b9e78c2d7fbe9fe"); @@ -688,7 +688,7 @@ void test_more_zeropoint() // by Falko std::string G = "024a96b5688ef573284664698968c38bb913cbfc82"; - SecureVector<byte> sv_G_secp_comp = decode_hex ( G ); + SecureVector<byte> sv_G_secp_comp = hex_decode ( G ); BigInt bi_p("0xffffffffffffffffffffffffffffffff7fffffff"); BigInt bi_a("0xffffffffffffffffffffffffffffffff7ffffffc"); BigInt bi_b("0x1c97befc54bd7a8b65acf89f81d4d4adc565fa45"); diff --git a/checks/ecdsa.cpp b/checks/ecdsa.cpp index 3d2ee37f3..e3fde803d 100644 --- a/checks/ecdsa.cpp +++ b/checks/ecdsa.cpp @@ -164,7 +164,7 @@ void test_sign_then_ver(RandomNumberGenerator& rng) PK_Signer signer(ecdsa, "EMSA1(SHA-1)"); - SecureVector<byte> msg = decode_hex("12345678901234567890abcdef12"); + SecureVector<byte> msg = hex_decode("12345678901234567890abcdef12"); SecureVector<byte> sig = signer.sign_message(msg, rng); PK_Verifier verifier(ecdsa, "EMSA1(SHA-1)"); @@ -289,11 +289,11 @@ void test_create_and_verify(RandomNumberGenerator& rng) std::string G_secp_comp = "04081523d03d4f12cd02879dea4bf6a4f3a7df26ed888f10c5b2235a1274c386a2f218300dee6ed217841164533bcdc903f07a096f9fbf4ee95bac098a111f296f5830fe5c35b3e344d5df3a2256985f64fbe6d0edcc4c61d18bef681dd399df3d0194c5a4315e012e0245ecea56365baa9e8be1f7"; std::string order_g = "0e1a16196e6000000000bc7f1618d867b15bb86474418f"; - // ::SecureVector<byte> sv_p_secp = decode_hex ( p_secp ); - SecureVector<byte> sv_a_secp = decode_hex ( a_secp ); - SecureVector<byte> sv_b_secp = decode_hex ( b_secp ); - SecureVector<byte> sv_G_secp_comp = decode_hex ( G_secp_comp ); - SecureVector<byte> sv_order_g = decode_hex ( order_g ); + // ::SecureVector<byte> sv_p_secp = hex_decode ( p_secp ); + SecureVector<byte> sv_a_secp = hex_decode ( a_secp ); + SecureVector<byte> sv_b_secp = hex_decode ( b_secp ); + SecureVector<byte> sv_G_secp_comp = hex_decode ( G_secp_comp ); + SecureVector<byte> sv_order_g = hex_decode ( order_g ); // BigInt bi_p_secp = BigInt::decode ( sv_p_secp.begin(), sv_p_secp.size() ); BigInt bi_p_secp("2117607112719756483104013348936480976596328609518055062007450442679169492999007105354629105748524349829824407773719892437896937279095106809"); @@ -365,7 +365,7 @@ void test_curve_registry(RandomNumberGenerator& rng) PK_Signer signer(ecdsa, "EMSA1(SHA-1)"); PK_Verifier verifier(ecdsa, "EMSA1(SHA-1)"); - SecureVector<byte> msg = decode_hex("12345678901234567890abcdef12"); + SecureVector<byte> msg = hex_decode("12345678901234567890abcdef12"); SecureVector<byte> sig = signer.sign_message(msg, rng); if(!verifier.verify_message(msg, sig)) @@ -383,7 +383,7 @@ void test_read_pkcs8(RandomNumberGenerator& rng) { std::cout << "." << std::flush; - SecureVector<byte> msg = decode_hex("12345678901234567890abcdef12"); + SecureVector<byte> msg = hex_decode("12345678901234567890abcdef12"); try { diff --git a/checks/misc.cpp b/checks/misc.cpp index ff95ed10f..31bc60435 100644 --- a/checks/misc.cpp +++ b/checks/misc.cpp @@ -8,10 +8,6 @@ #include <vector> #include <string> -#include <botan/pipe.h> -#include <botan/hex.h> -using namespace Botan; - #include "common.h" void strip_comments(std::string& line) @@ -40,29 +36,6 @@ void strip(std::string& line) line = line.erase(line.find('\t'), 1); } -SecureVector<byte> decode_hex(const std::string& in) - { - SecureVector<byte> result; - - try { - Botan::Pipe pipe(new Botan::Hex_Decoder); - pipe.process_msg(in); - result = pipe.read_all(); - } - catch(std::exception) - { - result.destroy(); - } - return result; - } - -std::string hex_encode(const byte in[], u32bit len) - { - Botan::Pipe pipe(new Botan::Hex_Encoder); - pipe.process_msg(in, len); - return pipe.read_all_as_string(); - } - std::vector<std::string> parse(const std::string& line) { const char DELIMITER = ':'; diff --git a/checks/pk.cpp b/checks/pk.cpp index 23ceda7fe..0d06e0983 100644 --- a/checks/pk.cpp +++ b/checks/pk.cpp @@ -64,10 +64,19 @@ using namespace Botan; namespace { -BigInt to_bigint(const std::string& h) +BigInt to_bigint(std::string input) { - return BigInt::decode(reinterpret_cast<const byte*>(h.data()), - h.length(), BigInt::Hexadecimal); + while(input.find(' ') != std::string::npos) + input = input.erase(input.find(' '), 1); + + while(input.find('\t') != std::string::npos) + input = input.erase(input.find('\t'), 1); + + while(input.find('\n') != std::string::npos) + input = input.erase(input.find('\n'), 1); + + return BigInt::decode(reinterpret_cast<const byte*>(input.data()), + input.length(), BigInt::Hexadecimal); } void dump_data(const SecureVector<byte>& out, @@ -145,9 +154,9 @@ void validate_encryption(PK_Encryptor& e, PK_Decryptor& d, const std::string& random, const std::string& exp, bool& failure) { - SecureVector<byte> message = decode_hex(input); - SecureVector<byte> expected = decode_hex(exp); - Fixed_Output_RNG rng(decode_hex(random)); + SecureVector<byte> message = hex_decode(input); + SecureVector<byte> expected = hex_decode(exp); + Fixed_Output_RNG rng(hex_decode(random)); SecureVector<byte> out = e.encrypt(message, rng); if(out != expected) @@ -165,9 +174,9 @@ void validate_signature(PK_Verifier& v, PK_Signer& s, const std::string& algo, RandomNumberGenerator& rng, const std::string& exp, bool& failure) { - SecureVector<byte> message = decode_hex(input); + SecureVector<byte> message = hex_decode(input); - SecureVector<byte> expected = decode_hex(exp); + SecureVector<byte> expected = hex_decode(exp); SecureVector<byte> sig = s.sign_message(message, message.size(), rng); @@ -199,7 +208,7 @@ void validate_signature(PK_Verifier& v, PK_Signer& s, const std::string& algo, const std::string& random, const std::string& exp, bool& failure) { - Fixed_Output_RNG rng(decode_hex(random)); + Fixed_Output_RNG rng(hex_decode(random)); validate_signature(v, s, algo, input, rng, exp, failure); } @@ -208,7 +217,7 @@ void validate_kas(PK_Key_Agreement& kas, const std::string& algo, const SecureVector<byte>& pubkey, const std::string& output, u32bit keylen, bool& failure) { - SecureVector<byte> expected = decode_hex(output); + SecureVector<byte> expected = hex_decode(output); SecureVector<byte> got = kas.derive_key(keylen, pubkey, pubkey.size()).bits_of(); @@ -310,8 +319,8 @@ u32bit validate_elg_enc(const std::string& algo, validate_encryption(e, d, algo, str[4], str[5], str[6], failure); } else - validate_decryption(d, algo, decode_hex(str[5]), - decode_hex(str[4]), failure); + validate_decryption(d, algo, hex_decode(str[5]), + hex_decode(str[4]), failure); return (failure ? 1 : 0); #endif @@ -358,8 +367,8 @@ u32bit validate_rsa_ver(const std::string& algo, PK_Verifier v(key, emsa); - SecureVector<byte> msg = decode_hex(str[2]); - SecureVector<byte> sig = decode_hex(str[3]); + SecureVector<byte> msg = hex_decode(str[2]); + SecureVector<byte> sig = hex_decode(str[3]); bool passed = true; passed = v.verify_message(msg, msg.size(), sig, sig.size()); @@ -390,8 +399,8 @@ u32bit validate_rsa_ver_x509(const std::string& algo, PK_Verifier v(*rsakey, emsa); - SecureVector<byte> msg = decode_hex(str[1]); - SecureVector<byte> sig = decode_hex(str[2]); + SecureVector<byte> msg = hex_decode(str[1]); + SecureVector<byte> sig = hex_decode(str[2]); bool passed = v.verify_message(msg, msg.size(), sig, sig.size()); return (passed ? 0 : 1); @@ -414,8 +423,8 @@ u32bit validate_rw_ver(const std::string& algo, PK_Verifier v(key, emsa); - SecureVector<byte> msg = decode_hex(str[2]); - SecureVector<byte> sig = decode_hex(str[3]); + SecureVector<byte> msg = hex_decode(str[2]); + SecureVector<byte> sig = hex_decode(str[3]); bool passed = true; passed = v.verify_message(msg, msg.size(), sig, sig.size()); @@ -522,7 +531,7 @@ u32bit validate_gost_ver(const std::string& algo, EC_Domain_Params group(OIDS::lookup(str[0])); - PointGFp public_point = OS2ECP(decode_hex(str[1]), group.get_curve()); + PointGFp public_point = OS2ECP(hex_decode(str[1]), group.get_curve()); GOST_3410_PublicKey gost(group, public_point); @@ -530,8 +539,8 @@ u32bit validate_gost_ver(const std::string& algo, PK_Verifier v(gost, emsa); - SecureVector<byte> msg = decode_hex(str[2]); - SecureVector<byte> sig = decode_hex(str[3]); + SecureVector<byte> msg = hex_decode(str[2]); + SecureVector<byte> sig = hex_decode(str[3]); bool passed = v.verify_message(msg, msg.size(), sig, sig.size()); return (passed ? 0 : 1); @@ -562,8 +571,8 @@ u32bit validate_dsa_ver(const std::string& algo, PK_Verifier v(*dsakey, emsa); - SecureVector<byte> msg = decode_hex(str[1]); - SecureVector<byte> sig = decode_hex(str[2]); + SecureVector<byte> msg = hex_decode(str[1]); + SecureVector<byte> sig = hex_decode(str[2]); v.set_input_format(DER_SEQUENCE); bool passed = v.verify_message(msg, msg.size(), sig, sig.size()); diff --git a/checks/validate.cpp b/checks/validate.cpp index 6e7a2e553..e1d5117a5 100644 --- a/checks/validate.cpp +++ b/checks/validate.cpp @@ -96,7 +96,6 @@ bool failed_test(const std::string&, std::vector<std::string>, bool, bool, std::vector<std::string> parse(const std::string&); void strip(std::string&); -Botan::SecureVector<byte> decode_hex(const std::string&); u32bit do_validation_tests(const std::string& filename, RandomNumberGenerator& rng, @@ -300,7 +299,7 @@ bool failed_test(const std::string& algo, pipe.append(test); pipe.append(new Botan::Hex_Encoder); - Botan::SecureVector<byte> data = decode_hex(in); + Botan::SecureVector<byte> data = Botan::hex_decode(in); const byte* data_ptr = data; // this can help catch errors with buffering, etc |