Browse Source

GOST signature unit test added

pull/838/head
orignal 8 years ago
parent
commit
13aab750dd
  1. 2
      Crypto.cpp
  2. 2
      Crypto.h
  3. 8
      tests/Makefile
  4. 29
      tests/test-gost-sig.cpp

2
Crypto.cpp

@ -799,7 +799,7 @@ namespace crypto
}*/ }*/
void InitCrypto (bool precomputation, bool withGost) void InitCrypto (bool precomputation)
{ {
SSL_library_init (); SSL_library_init ();
/* auto numLocks = CRYPTO_num_locks(); /* auto numLocks = CRYPTO_num_locks();

2
Crypto.h

@ -279,7 +279,7 @@ namespace crypto
#endif #endif
}; };
void InitCrypto (bool precomputation, bool withGost = false); void InitCrypto (bool precomputation);
void TerminateCrypto (); void TerminateCrypto ();
} }
} }

8
tests/Makefile

@ -1,7 +1,6 @@
CXXFLAGS += -Wall -Wextra -pedantic -O0 -g -std=c++11 -D_GLIBCXX_USE_NANOSLEEP=1 CXXFLAGS += -Wall -Wextra -pedantic -O0 -g -std=c++11 -D_GLIBCXX_USE_NANOSLEEP=1
TESTS = test-gost test-http-url test-http-req test-http-res test-http-url_decode \ TESTS = test-gost test-gost-sig test-base-64
test-http-merge_chunked test-base-64
all: $(TESTS) run all: $(TESTS) run
@ -11,9 +10,12 @@ test-http-%: ../HTTP.cpp test-http-%.cpp
test-base-%: ../Base.cpp test-base-%.cpp test-base-%: ../Base.cpp test-base-%.cpp
$(CXX) $(CXXFLAGS) $(NEEDED_CXXFLAGS) $(INCFLAGS) -o $@ $^ $(CXX) $(CXXFLAGS) $(NEEDED_CXXFLAGS) $(INCFLAGS) -o $@ $^
test-gost: ../Gost.cpp test-gost.cpp test-gost: ../Gost.cpp ../I2PEndian.cpp test-gost.cpp
$(CXX) $(CXXFLAGS) $(NEEDED_CXXFLAGS) $(INCFLAGS) -o $@ $^ -lcrypto $(CXX) $(CXXFLAGS) $(NEEDED_CXXFLAGS) $(INCFLAGS) -o $@ $^ -lcrypto
test-gost-sig: ../Gost.cpp ../I2PEndian.cpp ../Signature.cpp ../Crypto.cpp ../Log.cpp test-gost-sig.cpp
$(CXX) $(CXXFLAGS) $(NEEDED_CXXFLAGS) $(INCFLAGS) -o $@ $^ -lcrypto -lssl -lboost_system
run: $(TESTS) run: $(TESTS)
@for TEST in $(TESTS); do ./$$TEST ; done @for TEST in $(TESTS); do ./$$TEST ; done

29
tests/test-gost-sig.cpp

@ -0,0 +1,29 @@
#include <cassert>
#include <inttypes.h>
#include <string.h>
#include "../Gost.h"
#include "../Signature.h"
const uint8_t example2[72] =
{
0xfb,0xe2,0xe5,0xf0,0xee,0xe3,0xc8,0x20,0xfb,0xea,0xfa,0xeb,0xef,0x20,0xff,0xfb,
0xf0,0xe1,0xe0,0xf0,0xf5,0x20,0xe0,0xed,0x20,0xe8,0xec,0xe0,0xeb,0xe5,0xf0,0xf2,
0xf1,0x20,0xff,0xf0,0xee,0xec,0x20,0xf1,0x20,0xfa,0xf2,0xfe,0xe5,0xe2,0x20,0x2c,
0xe8,0xf6,0xf3,0xed,0xe2,0x20,0xe8,0xe6,0xee,0xe1,0xe8,0xf0,0xf2,0xd1,0x20,0x2c,
0xe8,0xf0,0xf2,0xe5,0xe2,0x20,0xe5,0xd1
};
int main ()
{
uint8_t priv[64], pub[128], signature[128];
i2p::crypto::CreateGOSTR3410RandomKeys (i2p::crypto::eGOSTR3410TC26A512, priv, pub);
i2p::crypto::GOSTR3410_2012_512_Signer signer (i2p::crypto::eGOSTR3410TC26A512, priv);
signer.Sign (example2, 72, signature);
i2p::crypto::GOSTR3410_2012_512_Verifier verifier (i2p::crypto::eGOSTR3410TC26A512, pub);
assert (verifier.Verify (example2, 72, signature));
}
Loading…
Cancel
Save