@@ -271,7 +271,8 @@ namespace ccf
271271 network.identity =
272272 std::make_unique<NetworkIdentity>(" CN=CCF Network" );
273273 network.ledger_secrets = std::make_shared<LedgerSecrets>(seal);
274- network.encryption_key = std::make_unique<NetworkEncryptionKey>(true );
274+ network.encryption_key = std::make_unique<NetworkEncryptionKey>(
275+ tls::create_entropy ()->random (crypto::BoxKey::KEY_SIZE));
275276
276277 self = 0 ; // The first node id is always 0
277278
@@ -300,7 +301,7 @@ namespace ccf
300301 return Success<CreateNew::Out>(
301302 {node_cert,
302303 network.identity ->cert ,
303- network. encryption_key -> get_public_pem ()});
304+ get_network_encryption_key_public_pem ()});
304305 }
305306 case StartType::Join:
306307 {
@@ -320,7 +321,8 @@ namespace ccf
320321 std::make_unique<NetworkIdentity>(" CN=CCF Network" );
321322 // Create temporary network secrets but do not seal yet
322323 network.ledger_secrets = std::make_shared<LedgerSecrets>(seal, false );
323- network.encryption_key = std::make_unique<NetworkEncryptionKey>(true );
324+ network.encryption_key = std::make_unique<NetworkEncryptionKey>(
325+ tls::create_entropy ()->random (crypto::BoxKey::KEY_SIZE));
324326
325327 setup_history ();
326328 setup_encryptor (network.consensus_type );
@@ -336,7 +338,7 @@ namespace ccf
336338 return Success<CreateNew::Out>(
337339 {node_cert,
338340 network.identity ->cert ,
339- network. encryption_key -> get_public_pem ()});
341+ get_network_encryption_key_public_pem ()});
340342 }
341343 default :
342344 {
@@ -408,7 +410,7 @@ namespace ccf
408410 network.ledger_secrets = std::make_shared<LedgerSecrets>(
409411 std::move (resp.network_info .ledger_secrets ), seal);
410412 network.encryption_key = std::make_unique<NetworkEncryptionKey>(
411- resp.network_info .encryption_key );
413+ std::move ( resp.network_info .encryption_key ) );
412414
413415 self = resp.node_id ;
414416
@@ -1328,6 +1330,13 @@ namespace ccf
13281330 }
13291331 }
13301332
1333+ std::vector<uint8_t > get_network_encryption_key_public_pem ()
1334+ {
1335+ return tls::PublicX25519::write (crypto::BoxKey::public_from_private (
1336+ network.encryption_key ->private_raw ))
1337+ .raw ();
1338+ }
1339+
13311340 void reset_quote ()
13321341 {
13331342 quote.clear ();
0 commit comments