mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
initiator handshake crypto-test
This commit is contained in:
parent
48f6bda44b
commit
5f5bca7632
37
crypto.cpp
37
crypto.cpp
@ -316,6 +316,43 @@ BOOST_AUTO_TEST_CASE(ecdhe)
|
||||
BOOST_REQUIRE_EQUAL(sremote, slocal);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(handshakeNew)
|
||||
{
|
||||
// authInitiator -> E(remote-pubk, S(ecdhe-random, ecdh-shared-secret^nonce) || H(ecdhe-random-pubk) || pubk || nonce || 0x0)
|
||||
// authRecipient -> E(remote-pubk, ecdhe-random-pubk || nonce || 0x0)
|
||||
|
||||
Secret nodeAsecret(sha3("privacy"));
|
||||
KeyPair nodeA(nodeAsecret);
|
||||
|
||||
Secret nodeBsecret(sha3("privacy++"));
|
||||
KeyPair nodeB(nodeBsecret);
|
||||
|
||||
// Initiator is Alice (nodeA)
|
||||
ECDHE eA;
|
||||
bytes nAbytes(fromHex("0xAAAA"));
|
||||
h256 nonceA(sha3(nAbytes));
|
||||
|
||||
bytes auth(Signature::size + h256::size + Public::size + h256::size + 1);
|
||||
{
|
||||
bytesConstRef sig(&auth[0], Signature::size);
|
||||
bytesConstRef hepubk(&auth[Signature::size], h256::size);
|
||||
bytesConstRef pubk(&auth[Signature::size + h256::size], Public::size);
|
||||
bytesConstRef nonce(&auth[Signature::size + h256::size + Public::size], h256::size);
|
||||
|
||||
Secret ss;
|
||||
s_secp256k1.agree(nodeA.sec(), nodeB.pub(), ss);
|
||||
sign(eA.seckey(), ss ^ nonceA).ref().copyTo(sig);
|
||||
sha3(eA.pubkey().ref(), hepubk);
|
||||
nodeA.pub().ref().copyTo(pubk);
|
||||
nonceA.ref().copyTo(nonce);
|
||||
auth[auth.size() - 1] = 0x0;
|
||||
}
|
||||
|
||||
cnote << "initAuth:" << toHex(auth);
|
||||
|
||||
// bytes ack(h256::size * 2 + 1);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(ecdhe_aes128_ctr_sha3mac)
|
||||
{
|
||||
// New connections require new ECDH keypairs
|
||||
|
Loading…
Reference in New Issue
Block a user