fix: remove trailing commas from keystore json (#2200)

* fix: remove trailing commas from keystore json

* keyfile.nim: try a different Json formatting approach

* build keystore

* address comment

---------

Co-authored-by: Ivan Folgueira Bande <ivansete@status.im>
This commit is contained in:
Sasha 2023-12-01 12:57:19 +01:00 committed by GitHub
parent c86dc4422f
commit 103d3981ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 30 additions and 13 deletions

View File

@ -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",
@ -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: