mirror of
https://github.com/codex-storage/nim-codex-dht.git
synced 2025-02-14 21:07:26 +00:00
encoding: introducing type cipher=aes128
Introducing the cipher type to ease changing cipher. No functional change Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
This commit is contained in:
parent
5c62d100e4
commit
13e48b8836
@ -39,6 +39,9 @@ declareCounter discovery_session_decrypt_failures, "Session decrypt failures"
|
|||||||
logScope:
|
logScope:
|
||||||
topics = "discv5"
|
topics = "discv5"
|
||||||
|
|
||||||
|
type
|
||||||
|
cipher = aes128
|
||||||
|
|
||||||
const
|
const
|
||||||
version: uint16 = 1
|
version: uint16 = 1
|
||||||
idSignatureText = "discovery v5 identity proof"
|
idSignatureText = "discovery v5 identity proof"
|
||||||
@ -161,7 +164,7 @@ proc deriveKeys*(n1, n2: NodeId, priv: PrivateKey, pub: PublicKey,
|
|||||||
ok secrets
|
ok secrets
|
||||||
|
|
||||||
proc encryptGCM*(key: AesKey, nonce, pt, authData: openArray[byte]): seq[byte] =
|
proc encryptGCM*(key: AesKey, nonce, pt, authData: openArray[byte]): seq[byte] =
|
||||||
var ectx: GCM[aes128]
|
var ectx: GCM[cipher]
|
||||||
ectx.init(key, nonce, authData)
|
ectx.init(key, nonce, authData)
|
||||||
result = newSeq[byte](pt.len + gcmTagSize)
|
result = newSeq[byte](pt.len + gcmTagSize)
|
||||||
ectx.encrypt(pt, result)
|
ectx.encrypt(pt, result)
|
||||||
@ -174,7 +177,7 @@ proc decryptGCM*(key: AesKey, nonce, ct, authData: openArray[byte]):
|
|||||||
debug "cipher is missing tag", len = ct.len
|
debug "cipher is missing tag", len = ct.len
|
||||||
return
|
return
|
||||||
|
|
||||||
var dctx: GCM[aes128]
|
var dctx: GCM[cipher]
|
||||||
dctx.init(key, nonce, authData)
|
dctx.init(key, nonce, authData)
|
||||||
var res = newSeq[byte](ct.len - gcmTagSize)
|
var res = newSeq[byte](ct.len - gcmTagSize)
|
||||||
var tag: array[gcmTagSize, byte]
|
var tag: array[gcmTagSize, byte]
|
||||||
@ -188,7 +191,7 @@ proc decryptGCM*(key: AesKey, nonce, ct, authData: openArray[byte]):
|
|||||||
return some(res)
|
return some(res)
|
||||||
|
|
||||||
proc encryptHeader*(id: NodeId, iv, header: openArray[byte]): seq[byte] =
|
proc encryptHeader*(id: NodeId, iv, header: openArray[byte]): seq[byte] =
|
||||||
var ectx: CTR[aes128]
|
var ectx: CTR[cipher]
|
||||||
ectx.init(id.toByteArrayBE().toOpenArray(0, 15), iv)
|
ectx.init(id.toByteArrayBE().toOpenArray(0, 15), iv)
|
||||||
result = newSeq[byte](header.len)
|
result = newSeq[byte](header.len)
|
||||||
ectx.encrypt(header, result)
|
ectx.encrypt(header, result)
|
||||||
@ -370,7 +373,7 @@ proc decodeHeader*(id: NodeId, iv, maskedHeader: openArray[byte]):
|
|||||||
DecodeResult[(StaticHeader, seq[byte])] =
|
DecodeResult[(StaticHeader, seq[byte])] =
|
||||||
# No need to check staticHeader size as that is included in minimum packet
|
# No need to check staticHeader size as that is included in minimum packet
|
||||||
# size check in decodePacket
|
# size check in decodePacket
|
||||||
var ectx: CTR[aes128]
|
var ectx: CTR[cipher]
|
||||||
ectx.init(id.toByteArrayBE().toOpenArray(0, aesKeySize - 1), iv)
|
ectx.init(id.toByteArrayBE().toOpenArray(0, aesKeySize - 1), iv)
|
||||||
# Decrypt static-header part of the header
|
# Decrypt static-header part of the header
|
||||||
var staticHeader = newSeq[byte](staticHeaderSize)
|
var staticHeader = newSeq[byte](staticHeaderSize)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user