Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: remove trailing commas from keystore json #2200

Merged
merged 9 commits into from
Dec 1, 2023
43 changes: 30 additions & 13 deletions waku/waku_keystore/keyfile.nim
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,23 @@ type
DKey = array[DKLen, byte]
KfResult*[T] = Result[T, KeyFileError]

# basic types for building Keystore JSON
CypherParams = object
iv: string

CryptoNew = object
cipher: string
cipherparams: CypherParams
ciphertext: string
kdf: string
kdfparams: JsonNode
mac: string

KeystoreEntry = object
crypto: CryptoNew
id: string
version: string

const
SupportedHashes = [
"sha224", "sha256", "sha384", "sha512",
Expand Down Expand Up @@ -373,20 +390,20 @@ proc createKeyFileJson*(secret: openArray[byte],

let params = ? kdfParams(kdfkind, toHex(salt, true), workfactor)

let json = %*
{
"crypto": {
"cipher": $cryptkind,
"cipherparams": {
"iv": toHex(iv, true)
},
"ciphertext": toHex(ciphertext, true),
"kdf": $kdfkind,
"kdfparams": params,
"mac": toHex(mac.data, true),
},
}
var obj = KeystoreEntry(
crypto: CryptoNew(
cipher: $cryptkind,
cipherparams: CypherParams(
iv: toHex(iv, true)
),
ciphertext: toHex(ciphertext, true),
kdf: $kdfkind,
kdfparams: params,
mac: toHex(mac.data, true)
)
)

let json = %* obj
if IdInKeyfile:
json.add("id", %($u))
if VersionInKeyfile:
Expand Down
Loading