Skip to content

Commit

Permalink
Restrict usage to when encryption is not active.
Browse files Browse the repository at this point in the history
  • Loading branch information
adamierymenko committed Sep 26, 2024
1 parent 6b078ee commit f190df8
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions node/Packet.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1071,6 +1071,7 @@ void Packet::armor(const void *key,bool encryptPayload,bool extendedArmor,const
}
}

/* NOTE: this is currently only ever used with NONE encryption for HELLO packets. */
if (extendedArmor) {
ECC::Pair ephemeralKeyPair = ECC::generate();
uint8_t ephemeralSymmetric[32];
Expand All @@ -1088,9 +1089,10 @@ void Packet::armor(const void *key,bool encryptPayload,bool extendedArmor,const
bool Packet::dearmor(const void *key,const AES aesKeys[2],const Identity &identity)
{
uint8_t *const data = reinterpret_cast<uint8_t *>(unsafeData());
const unsigned int cs = cipher();

if (extendedArmor()) {
if (size() < ZT_ECC_EPHEMERAL_PUBLIC_KEY_LEN) {
if (extendedArmor() && (cs == ZT_PROTO_CIPHER_SUITE__C25519_POLY1305_NONE)) {
if (size() < (ZT_PACKET_IDX_VERB + 1 + ZT_ECC_EPHEMERAL_PUBLIC_KEY_LEN)) {
return false;
}
uint8_t ephemeralSymmetric[32];
Expand All @@ -1112,7 +1114,6 @@ bool Packet::dearmor(const void *key,const AES aesKeys[2],const Identity &identi

const unsigned int payloadLen = size() - ZT_PACKET_IDX_VERB;
unsigned char *const payload = data + ZT_PACKET_IDX_VERB;
const unsigned int cs = cipher();

if (cs == ZT_PROTO_CIPHER_SUITE__AES_GMAC_SIV) {
if (aesKeys) {
Expand Down

0 comments on commit f190df8

Please sign in to comment.