diff --git a/Makefile b/Makefile index 1c93810c..ffb6e1c5 100644 --- a/Makefile +++ b/Makefile @@ -66,3 +66,8 @@ ci-release: -w /go/src/$(PACKAGE_NAME) \ ghcr.io/goreleaser/goreleaser-cross:v1.21.12 \ release --clean --auto-snapshot + +.PHONY: pregenerate-bls-keys +pregenerate-bls-keys: ## Pregenerate BLS keys for testing + go run ./tools/pregenerate_bls_keys/main.go > utils/keys/fixtures/bls_keys.json + @echo "BLS keys pregenerated in ./test_data/bls_keys.json" diff --git a/playground/artifacts.go b/playground/artifacts.go index 9c05ba38..6105587a 100644 --- a/playground/artifacts.go +++ b/playground/artifacts.go @@ -15,7 +15,6 @@ import ( "maps" "math/big" "os" - "path" "path/filepath" "reflect" "strconv" @@ -24,7 +23,7 @@ import ( "time" "github.com/OffchainLabs/prysm/v6/config/params" - "github.com/OffchainLabs/prysm/v6/crypto/bls/common" + "github.com/OffchainLabs/prysm/v6/crypto/bls" "github.com/OffchainLabs/prysm/v6/runtime/interop" "github.com/OffchainLabs/prysm/v6/runtime/version" gethcommon "github.com/ethereum/go-ethereum/common" @@ -32,9 +31,8 @@ import ( "github.com/ethereum/go-ethereum/core/types" ecrypto "github.com/ethereum/go-ethereum/crypto" "github.com/flashbots/builder-playground/utils" - "github.com/hashicorp/go-uuid" + "github.com/flashbots/builder-playground/utils/keys" "github.com/otiai10/copy" - keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4" "gopkg.in/yaml.v2" ) @@ -188,11 +186,20 @@ func (b *ArtifactsBuilder) Build(out *output) error { } log.Println("Generating keys...") - priv, pub, err := interop.DeterministicallyGenerateKeys(0, 100) + keys, err := keys.GetPregeneratedBLSKeys() if err != nil { return err } + var ( + priv []bls.SecretKey + pub []bls.PublicKey + ) + for _, key := range keys { + priv = append(priv, key.Priv) + pub = append(pub, key.Pub) + } + depositData, roots, err := interop.DepositDataFromKeysWithExecCreds(priv, pub, 100) if err != nil { return err @@ -216,10 +223,7 @@ func (b *ArtifactsBuilder) Build(out *output) error { "testnet/deploy_block.txt": "0", "testnet/deposit_contract_block.txt": "0", "testnet/genesis_validators_root.txt": hex.EncodeToString(state.GenesisValidatorsRoot()), - "data_validator/": &lighthouseKeystore{ - privKeys: priv, - cacheDir: path.Join(out.homeDir, "cache", "data_validator"), - }, + "data_validator/": &lighthouseKeystore{privKeys: keys}, }) if err != nil { return err @@ -562,64 +566,23 @@ func (o *output) WriteFile(dst string, data interface{}) error { return nil } -var secret = "secret" - type lighthouseKeystore struct { - privKeys []common.SecretKey - cacheDir string -} - -func isExistingDir(path string) bool { - info, err := os.Stat(path) - if err == nil { - return info.IsDir() - } - return false + privKeys []*keys.Key } func (l *lighthouseKeystore) Encode(o *output) error { - // If the cache dir exists, just copy to destination. - if isExistingDir(l.cacheDir) { - return o.WriteDir(l.cacheDir) - } - - // If the cache dir doesn't exist, set dst as the cache dir to write the keys there first. - oldDst := o.dst - o.dst = l.cacheDir - for _, key := range l.privKeys { - encryptor := keystorev4.New() - cryptoFields, err := encryptor.Encrypt(key.Marshal(), secret) - if err != nil { - return err - } - - id, _ := uuid.GenerateUUID() - - pubKeyHex := "0x" + hex.EncodeToString(key.PublicKey().Marshal()) - item := map[string]interface{}{ - "crypto": cryptoFields, - "uuid": id, - "pubkey": pubKeyHex[2:], // without 0x in the json file - "version": 4, - "description": "", - } - valJSON, err := json.MarshalIndent(item, "", "\t") - if err != nil { - return err - } + pubKeyHex := "0x" + hex.EncodeToString(key.Pub.Marshal()) if err := o.WriteBatch(map[string]interface{}{ - "validators/" + pubKeyHex + "/voting-keystore.json": valJSON, - "secrets/" + pubKeyHex: secret, + "validators/" + pubKeyHex + "/voting-keystore.json": key.Keystore, + "secrets/" + pubKeyHex: keys.DefaultSecret, }); err != nil { return err } } - // Restore the dst and write from the cache. - o.dst = oldDst - return o.WriteDir(l.cacheDir) + return nil } type encObject interface { diff --git a/tools/pregenerate_bls_keys/main.go b/tools/pregenerate_bls_keys/main.go new file mode 100644 index 00000000..98114811 --- /dev/null +++ b/tools/pregenerate_bls_keys/main.go @@ -0,0 +1,39 @@ +package main + +import ( + "encoding/json" + "fmt" + "log" + + "github.com/OffchainLabs/prysm/v6/runtime/interop" + "github.com/flashbots/builder-playground/utils/keys" +) + +func main() { + if err := generateKeys(); err != nil { + log.Fatal(err.Error()) + } +} + +func generateKeys() error { + priv, _, err := interop.DeterministicallyGenerateKeys(0, 100) + if err != nil { + return err + } + + keysResult := []*keys.Key{} + for i := 0; i < len(priv); i++ { + key, err := keys.NewKey(priv[i], keys.DefaultSecret) + if err != nil { + return err + } + keysResult = append(keysResult, key) + } + + data, err := json.Marshal(keysResult) + if err != nil { + panic(err) + } + fmt.Println(string(data)) + return nil +} diff --git a/utils/keys/fixtures/bls_keys.json b/utils/keys/fixtures/bls_keys.json new file mode 100644 index 00000000..d3b72e08 --- /dev/null +++ b/utils/keys/fixtures/bls_keys.json @@ -0,0 +1 @@ +[{"priv":"25295f0d1d592a90b333e26e85149708208e9f8e8bc18f6c77bd62f8ad7a6866","pub":"a99a76ed7796f7be22d5b7e85deeb7c5677e88e511e0b337618f8c4eb61349b4bf2d153f649f7b53359fe8b94a38e44c","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"5e6170a05b8560a764fe4a77502d0a69e998c9571787c4713640e2a72ea8b332\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"c7bd1f6f7b8df10bd529952d57c19f827e3632d6a242afafb6900773b2c04192\",\"params\":{\"iv\":\"a85892200e7ba56156f6ccfcbc3b02cd\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"f80250128aa6175a23ae11a4b046bdc7df8574f481614208d4b82b49ca7c0b97\"}}},\"description\":\"\",\"pubkey\":\"a99a76ed7796f7be22d5b7e85deeb7c5677e88e511e0b337618f8c4eb61349b4bf2d153f649f7b53359fe8b94a38e44c\",\"uuid\":\"7eb47226-efe6-5ab6-9cc3-f3649c10bdc6\",\"version\":4}"},{"priv":"51d0b65185db6989ab0b560d6deed19c7ead0e24b9b6372cbecb1f26bdfad000","pub":"b89bebc699769726a318c8e9971bd3171297c61aea4a6578a7a4f94b547dcba5bac16a89108b6b6a1fe3695d1a874a0b","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"315332f213eced0cc2cdd8c78afcd8d7e895eb680c58615f38b973a29489402e\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"5ab7d0a0730f15e26015eb9b14156f2482f018fe12ba9e3852b192d6a0c4d190\",\"params\":{\"iv\":\"b31ea9b8eb46e4e4451536924963cf20\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"30eeb977185b83aefb7180e1f3b21d3c21838cf3ce2e778a5c587e9b40f4f8cb\"}}},\"description\":\"\",\"pubkey\":\"b89bebc699769726a318c8e9971bd3171297c61aea4a6578a7a4f94b547dcba5bac16a89108b6b6a1fe3695d1a874a0b\",\"uuid\":\"4ca24f7f-4e6b-fe99-bc0f-f7629ff06e8e\",\"version\":4}"},{"priv":"315ed405fafe339603932eebe8dbfd650ce5dafa561f6928664c75db85f97857","pub":"a3a32b0f8b4ddb83f1a0a853d81dd725dfe577d4f4c3db8ece52ce2b026eca84815c1a7e8e92a4de3d755733bf7e4a9b","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"e2ff6cf1a90d8f3e1e67f703946611d05294902333aef3e80eae55415b5c304c\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"68ab73f33c7a15958138f873ed95f477e456fd779ce8d2b0a95405d33e28f105\",\"params\":{\"iv\":\"95f0e3b50e061c24a61f3de15b3e02f6\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"715ff824d038eb8bbe6da823346ab1d59c9babfb39a80c967edd36a443484c17\"}}},\"description\":\"\",\"pubkey\":\"a3a32b0f8b4ddb83f1a0a853d81dd725dfe577d4f4c3db8ece52ce2b026eca84815c1a7e8e92a4de3d755733bf7e4a9b\",\"uuid\":\"dc4414eb-acff-de75-b60b-35c8cdd9baf0\",\"version\":4}"},{"priv":"25b1166a43c109cb330af8945d364722757c65ed2bfed5444b5a2f057f82d391","pub":"88c141df77cd9d8d7a71a75c826c41a9c9f03c6ee1b180f3e7852f6a280099ded351b58d66e653af8e42816a4d8f532e","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"9f2d5001f7529e35ceca7b12323e675e5e6d82feefb2085893a52cf294c0f150\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"d4b27764d5e5cf4dbf884354915b6466c3f01d0b9f971dfe82d23bac41eaf4a2\",\"params\":{\"iv\":\"d5abc57899f09f93cd41b4e9a02cddb4\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"b27bde3040a9c7383da7fff656d082b1bceb3a4d0d385e95c2873c2033d7bbbd\"}}},\"description\":\"\",\"pubkey\":\"88c141df77cd9d8d7a71a75c826c41a9c9f03c6ee1b180f3e7852f6a280099ded351b58d66e653af8e42816a4d8f532e\",\"uuid\":\"f741ab27-6bf6-7971-ffb6-e36851ea6271\",\"version\":4}"},{"priv":"3f5615898238c4c4f906b507ee917e9ea1bb69b93f1dbd11a34d229c3b06784b","pub":"81283b7a20e1ca460ebd9bbd77005d557370cabb1f9a44f530c4c4c66230f675f8df8b4c2818851aa7d77a80ca5a4a5e","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"515ad64b05c34efc9262173a928d0986833633f761bc3552b2ae018ce7d4f765\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"3bebab761ef4a60f7cb76d8ed9367df4a3b8a3229647040a5b0bc22df71668c7\",\"params\":{\"iv\":\"0aba9f57ca22e5d762d57fcb3d3970b3\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"1cd889c1b47edc3f5104c9a54bca0562f15af3322058c6a6f215bc6e5acd9b76\"}}},\"description\":\"\",\"pubkey\":\"81283b7a20e1ca460ebd9bbd77005d557370cabb1f9a44f530c4c4c66230f675f8df8b4c2818851aa7d77a80ca5a4a5e\",\"uuid\":\"87a2804d-8af4-ac89-d02f-d31a8adbb627\",\"version\":4}"},{"priv":"055794614bc85ed5436c1f5cab586aab6ca84835788621091f4f3b813761e7a8","pub":"ab0bdda0f85f842f431beaccf1250bf1fd7ba51b4100fd64364b6401fda85bb0069b3e715b58819684e7fc0b10a72a34","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"5e1a5d5170296e2eed9d5cce850b855beff21b1892f679ae87a1ca682885842f\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"57b8ef31cd940ae31f4fe5f51d564b4573abcaea0b482bf54cda04eb3dfdb114\",\"params\":{\"iv\":\"0f871025a19489b6797115379566e36f\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"dd5fa1cc4e2ddb8953a126d0d8097b455f2b9b9ad6b28690561caf4f0eb4a33f\"}}},\"description\":\"\",\"pubkey\":\"ab0bdda0f85f842f431beaccf1250bf1fd7ba51b4100fd64364b6401fda85bb0069b3e715b58819684e7fc0b10a72a34\",\"uuid\":\"23bdaeff-cda1-4848-2bdd-5e011017a1b1\",\"version\":4}"},{"priv":"1023c68852075965e0f7352dee3f76a84a83e7582c181c10179936c6d6348893","pub":"9977f1c8b731a8d5558146bfb86caea26434f3c5878b589bf280a42c9159e700e9df0e4086296c20b011d2e78c27d373","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"5172ca26637ffb3ea20d64fb7775952cac251191ee56921dfe5172df871b79f4\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"4aba72729190b5ee908eb6a03697e93388d8448dfe8e02c8bdd5f934262fdeaf\",\"params\":{\"iv\":\"0f160bb2542a46a76388e9623eacaf0f\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"6679a2bb1b6322af8d19d8bec416cb1b295101f52dec5fe2eeb3c7b7e8d870df\"}}},\"description\":\"\",\"pubkey\":\"9977f1c8b731a8d5558146bfb86caea26434f3c5878b589bf280a42c9159e700e9df0e4086296c20b011d2e78c27d373\",\"uuid\":\"78acdae2-0ef0-4c67-6593-5fd7edacf6a3\",\"version\":4}"},{"priv":"3a941600dc41e5d20e818473b817a28507c23cdfdb4b659c15461ee5c71e41f5","pub":"a8d4c7c27795a725961317ef5953a7032ed6d83739db8b0e8a72353d1b8b4439427f7efa2c89caa03cc9f28f8cbab8ac","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"6313ca4fb0213693f90a1ac99fb3e3cd8c99d19ca3943abee2c0ce156e695047\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"2594bdb50a26c94cef5e3310b8900bae7f68076651a9e6acc20d2c0285ccbaf3\",\"params\":{\"iv\":\"3fc0ee9019d46e46184a87d4bcaa6109\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"994b4805e251e3f3cbdfe372687eaac0f1f2207bfee9a2326e410f6cb28a7bef\"}}},\"description\":\"\",\"pubkey\":\"a8d4c7c27795a725961317ef5953a7032ed6d83739db8b0e8a72353d1b8b4439427f7efa2c89caa03cc9f28f8cbab8ac\",\"uuid\":\"55a4071a-b872-a440-3f8f-2157d2e25d2f\",\"version\":4}"},{"priv":"066e3bdc0415530e5c7fed6382d5c822c192b620203cf669903e1810a8c67d06","pub":"a6d310dbbfab9a22450f59993f87a4ce5db6223f3b5f1f30d2c4ec718922d400e0b3c7741de8e59960f72411a0ee10a7","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"6a8fa56adafbca7ec0f1a8139022d51ef8ad4a498efa0aa761f5f9f634db8967\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"db5212ba6cdf87062d269398c155f5b8bf54fb5247d6b6e04f7bd9f1f8f4fac3\",\"params\":{\"iv\":\"362d48a8ea5230ad50e9b9863c342b0e\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"dc9d4733879f0ab9ede45ac86c2b79cec86d75c82349a9aa4450781631043f15\"}}},\"description\":\"\",\"pubkey\":\"a6d310dbbfab9a22450f59993f87a4ce5db6223f3b5f1f30d2c4ec718922d400e0b3c7741de8e59960f72411a0ee10a7\",\"uuid\":\"ed605d97-f67f-cf5e-bac5-51533dff5476\",\"version\":4}"},{"priv":"2b3b88a041168a1c4cd04bdd8de7964fd35238f95442dc678514f9dadb81ec34","pub":"9893413c00283a3f9ed9fd9845dda1cea38228d22567f9541dccc357e54a2d6a6e204103c92564cbc05f4905ac7c493a","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"57431e765fac701a6866945ff214070205481a572da3136986dbaf0b4c3d5b9d\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"3ff056547ed594129d904afab0d903513397f1e8dd1631448697d3db3a02f13e\",\"params\":{\"iv\":\"cdda1e1e8883f3f305b1f40a4c93cfcc\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"979ae7647acb9dc881904baa3260a43c04fec140733214789b6f6e8c7ee06e64\"}}},\"description\":\"\",\"pubkey\":\"9893413c00283a3f9ed9fd9845dda1cea38228d22567f9541dccc357e54a2d6a6e204103c92564cbc05f4905ac7c493a\",\"uuid\":\"af76db56-b6f2-daa8-de64-cff6a819e857\",\"version\":4}"},{"priv":"2e62dbea7fe3127c3b236a92795dd633be51ee7cdfe5424882a2f355df497117","pub":"876dd4705157eb66dc71bc2e07fb151ea53e1a62a0bb980a7ce72d15f58944a8a3752d754f52f4a60dbfc7b18169f268","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"c00cc27722c744c7bc09a83f1041293fa12fae60083d0ba4d78e7c2c114ef9f2\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"1ff3c3e91a0a2e4d0e459c9050b8a71fa7ab65681856b06eed464201622d7ae9\",\"params\":{\"iv\":\"82fa4578a72842763a8cb140fc6b58fd\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"a7ad22469c3670710455016d3344e5d544f46c195617c7ab83c95df95b43d72d\"}}},\"description\":\"\",\"pubkey\":\"876dd4705157eb66dc71bc2e07fb151ea53e1a62a0bb980a7ce72d15f58944a8a3752d754f52f4a60dbfc7b18169f268\",\"uuid\":\"4d332ea8-cc25-f886-8086-27b22286390c\",\"version\":4}"},{"priv":"2042dc809c130e91906c9cb0be2fec0d6afaa8f22635efc7a3c2dbf833c1851a","pub":"aec922bd7a9b7b1dc21993133b586b0c3041c1e2e04b513e862227b9d7aecaf9444222f7e78282a449622ffc6278915d","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"eee92f6a63707d2ee0ed41d2c17c9bf9c20fe0cf2c253d437c98b8f4fcc54c99\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"28d1ee73040a2d9df9cac66d0ca1fe7cfe6412f045f7464a9c29343f12ee2e9b\",\"params\":{\"iv\":\"a0a9b06da1d5148b003760be69d33b89\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"23aacb46fa058fe0aaffc3652ebec834b9b6fd1d8dbbbb8ce369c227c493bbea\"}}},\"description\":\"\",\"pubkey\":\"aec922bd7a9b7b1dc21993133b586b0c3041c1e2e04b513e862227b9d7aecaf9444222f7e78282a449622ffc6278915d\",\"uuid\":\"706b22cc-8d1c-9afe-9d4e-640751b6a6bd\",\"version\":4}"},{"priv":"15283c540041cd85c4533ee47517c8bb101c6207e9acbba2935287405a78502c","pub":"9314c6de0386635e2799af798884c2ea09c63b9f079e572acc00b06a7faccce501ea4dfc0b1a23b8603680a5e3481327","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"acf43ea7ea82092bf7579c305e9853840e56e8c7a90e1f07cacda3a1b81097cb\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"a9310457c288eac322d70368d5cd72474d020ceb9c29a1df89e76d67e26ce8b8\",\"params\":{\"iv\":\"159bb43584077960ba23b17baf4f3b23\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"0c9baef00d3246118ab71048ecf0a0a2a77fa7edf342ba5cdc1524fc52d425e8\"}}},\"description\":\"\",\"pubkey\":\"9314c6de0386635e2799af798884c2ea09c63b9f079e572acc00b06a7faccce501ea4dfc0b1a23b8603680a5e3481327\",\"uuid\":\"02155f2b-0eec-dbb7-d48b-d7c7e4aef79b\",\"version\":4}"},{"priv":"03c85e538e1bb30235a87a3758c5571753ca1308b7dee321b74c19f78423999b","pub":"903e2989e7442ee0a8958d020507a8bd985d3974f5e8273093be00db3935f0500e141b252bd09e3728892c7a8443863c","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"40da1eb72062345f05489ae0b54396c9b930980a460919759397557b09d34569\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"f06e8326f326654f065df3367e2bbfea520a45ec9cb565d3f720d9b99229ad2f\",\"params\":{\"iv\":\"343de1ca054ffbc8e484b41010a61ced\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"eef90198aa3f43061e464791cd31e0b1861c079b56e86b1e1a36e859a46f5956\"}}},\"description\":\"\",\"pubkey\":\"903e2989e7442ee0a8958d020507a8bd985d3974f5e8273093be00db3935f0500e141b252bd09e3728892c7a8443863c\",\"uuid\":\"d1d8d629-a262-0905-bcb9-2a29c8cf7b82\",\"version\":4}"},{"priv":"45a577d5cab31ac5cfff381500e09655f0799f29b130e6ad61c1eec4b15bf8dd","pub":"84398f539a64cbe01cfcd8c485ea51cd6657b94df93ee9b5dc61e1f18f69da6ca9d4dba63c956a81c68d5d4d4277a60f","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"765c752f58a877370e111f8500d45d5c44f11259fccc8e1196fc35001e33ba30\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"af85793f69dc5554ecf59f1614d27bf0769d8a3db677797c925895c82b0026b6\",\"params\":{\"iv\":\"1db8321a9d903e561fc2fc74a02a471f\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"f9950edc10598809d970e5c71fd5ec13f24357ac0c91c88d6a9fd1896d927c39\"}}},\"description\":\"\",\"pubkey\":\"84398f539a64cbe01cfcd8c485ea51cd6657b94df93ee9b5dc61e1f18f69da6ca9d4dba63c956a81c68d5d4d4277a60f\",\"uuid\":\"1bc7fd30-26ca-8338-64f1-57369e428dc0\",\"version\":4}"},{"priv":"03cffafa1cbaa7e585eaee07a9d35ae57f6dfe19a9ea53af9c37e9f3dfac617c","pub":"872c61b4a7f8510ec809e5b023f5fdda2105d024c470ddbbeca4bc74e8280af0d178d749853e8f6a841083ac1b4db98f","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"aacf813b58f726b4bb7a2f59ad89e542c18bed5d9a87f486c9b00c37047fb2f8\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"d6bf6b8a294ac609873efc8f50c8d76b33d66054e10a70273b956cd6abf23a8c\",\"params\":{\"iv\":\"5b6b89bc6898985b2a084596cf12c525\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"d0820ff70ed189bd16c04926e5a2d9fd2c0478dfe5707c442834af5dbeb47b39\"}}},\"description\":\"\",\"pubkey\":\"872c61b4a7f8510ec809e5b023f5fdda2105d024c470ddbbeca4bc74e8280af0d178d749853e8f6a841083ac1b4db98f\",\"uuid\":\"5f974a9c-22f5-91e2-11e0-1de6356c7eb5\",\"version\":4}"},{"priv":"67496f1d63498dc62da0bf641f55125f6fc971ed1f08f7e9649e75709525fd55","pub":"8f467e5723deac7659e1ca273e28410cbaa6d495ab66ae77014f4cd21c64b6b5ab9987c9b5537fe0279bd063fe609be7","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"8f1a4edba66807ce3608576896232965828f1521bdd462b45ead8701234101f7\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"de6c3a3d42c2c6d572b2ba73f9cc4ff64bbbe91b5df470f11cd75858331d0d76\",\"params\":{\"iv\":\"1398265a3e7323f64b2ceb98c60d5c17\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"fa65635faca8db8f930e28aed869c5abc9ae678c20d433b2c6719ad4470832eb\"}}},\"description\":\"\",\"pubkey\":\"8f467e5723deac7659e1ca273e28410cbaa6d495ab66ae77014f4cd21c64b6b5ab9987c9b5537fe0279bd063fe609be7\",\"uuid\":\"f3cbd29d-6ed2-ab16-67f4-1741718a8e56\",\"version\":4}"},{"priv":"1e892380d153a5032cd54041b76de0a5f0f26dee3f189f829d5d33e720ba3934","pub":"8dde8306920812b32def3b663f7c540b49180345d3bcb8d3770790b7dc80030ebc06497feebd1bcf017d918f00bfa88f","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"c58f024e66ab23a9f22713b3d7066e302ad1b092793ff16d9cc1636b99c4f6c8\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"b4e00d06ccf4276015caff2953227a5ecc67ae3681de9411f8d014d0e8d37de1\",\"params\":{\"iv\":\"cb45c01f176f4c084103d9eb11669bf9\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"456a3b66285dc7549bf719e5e771d3e7956e2f11c645e0363bb98451bdfd8995\"}}},\"description\":\"\",\"pubkey\":\"8dde8306920812b32def3b663f7c540b49180345d3bcb8d3770790b7dc80030ebc06497feebd1bcf017d918f00bfa88f\",\"uuid\":\"ecf9def6-32a4-bd1f-9e55-3f72bfb5d543\",\"version\":4}"},{"priv":"5a6ca99e594d26a4c8268441dcdb261f00c63e653991bf77f3e6d661dd1d7a0c","pub":"ab8d3a9bcc160e518fac0756d3e192c74789588ed4a2b1debf0c78f78479ca8edb05b12ce21103076df6af4eb8756ff9","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"69ed91e0bbaa8a4ec854fa3e782fd8dde0262ccfbb4d25e21b57971381600ee3\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"b95a547efc572dca5456010819b3e6f3f63ce021804f422daeafb4d9077218b2\",\"params\":{\"iv\":\"e9832029a9a9321a7bde43808382bc8e\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"5a56d7321cb565ceb0e323ba72ecb9834552e1865be431a56187865555f88d51\"}}},\"description\":\"\",\"pubkey\":\"ab8d3a9bcc160e518fac0756d3e192c74789588ed4a2b1debf0c78f78479ca8edb05b12ce21103076df6af4eb8756ff9\",\"uuid\":\"aed23069-103d-b83a-29a9-976eee3bbea8\",\"version\":4}"},{"priv":"31b5d11b313d1736237139f0c56c5503b9786ce425fbf514446e44152c794d26","pub":"8d5d3672a233db513df7ad1e8beafeae99a9f0199ed4d949bbedbb6f394030c0416bd99b910e14f73c65b6a11fe6b62e","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"065961b4b9ce94e4ce56efe9d78cb8a88dc12b0f960ea34d4fbb401192061d98\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"f6aa2a58125f97d5e0e484c7761c86f8a7f6ea8c0014560d4ece378c94514fba\",\"params\":{\"iv\":\"6e810224b647cb34e6502848727509d9\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"4025e40d8d633b23ca61286d1cfff18374a1b262eb276e14df4a053ccb883601\"}}},\"description\":\"\",\"pubkey\":\"8d5d3672a233db513df7ad1e8beafeae99a9f0199ed4d949bbedbb6f394030c0416bd99b910e14f73c65b6a11fe6b62e\",\"uuid\":\"6a629369-dd70-0f7e-e96f-c90f5338f031\",\"version\":4}"},{"priv":"46fbedc2776c0d5db0da0d74b0a6ca45940596db7754dd87f1dbeeac396bd707","pub":"a1c76af1545d7901214bb6be06be5d9e458f8e989c19373a920f0018327c83982f6a2ac138260b8def732cb366411ddc","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"27bd67f8598e12af0403540ce03b1c372c9a9df9a905b3afb8a5051b83bb6e56\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"2344b592cb3887d3bc8488944f99dba3c2d3ae8f05535236a5a61f30a120bd61\",\"params\":{\"iv\":\"8f961750a18e477fb22596ee39b0a3d7\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"3dc48080c968c7f85eab1b96f4ec528befc46b69832f0689c633fb2bb67e4508\"}}},\"description\":\"\",\"pubkey\":\"a1c76af1545d7901214bb6be06be5d9e458f8e989c19373a920f0018327c83982f6a2ac138260b8def732cb366411ddc\",\"uuid\":\"567035ba-a5ee-9331-2ca9-c932ff7e4d78\",\"version\":4}"},{"priv":"2abf4b942eaef1bd2e92e98228890e50c408e54e0c7972c1ce67f60a5ae6fdc1","pub":"8dd74e1bb5228fc1fca274fda02b971c1003a4f409bbdfbcfec6426bf2f52addcbbebccdbf45eee6ae11eb5b5ee7244d","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"dcd5c661ddb4e98b0c8c0ca985e3ed5757ba0815a97a7bfddebb5cb9d8ffbc11\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"89fe993a50aca2a49ae012eea327e0d34a144b4ac433ad6326c830731bdbe0c5\",\"params\":{\"iv\":\"c9758cc8bd21395ad87d520db0397622\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"a1337549f77844b66a0e371248f1f7c2fb5502618a9dab88429f76a0f08207e7\"}}},\"description\":\"\",\"pubkey\":\"8dd74e1bb5228fc1fca274fda02b971c1003a4f409bbdfbcfec6426bf2f52addcbbebccdbf45eee6ae11eb5b5ee7244d\",\"uuid\":\"15cff923-4f1b-84a4-baf6-858fbbe81b61\",\"version\":4}"},{"priv":"6327b1e58c41d60dd7c3c8b9634204255707c2d12e2513c345001d8926745eea","pub":"954eb88ed1207f891dc3c28fa6cfdf8f53bf0ed3d838f3476c0900a61314d22d4f0a300da3cd010444dd5183e35a593c","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"80e228381e505e93d365ac7158a92e5b410964b4704bb0b6d9a4ae94c7699330\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"8d9f1f76672e7da88caaf26a344a322146b4259817a8affb101f94e344ea79b3\",\"params\":{\"iv\":\"8de554a5d4ae157bd8401482cbb0df5c\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"9675a663902a80d03c8c4f993cac3ee6b93e052c758c5090b72bc00c55a67890\"}}},\"description\":\"\",\"pubkey\":\"954eb88ed1207f891dc3c28fa6cfdf8f53bf0ed3d838f3476c0900a61314d22d4f0a300da3cd010444dd5183e35a593c\",\"uuid\":\"683d4226-db38-592d-bfc1-5c94e904c8b4\",\"version\":4}"},{"priv":"02a07f22259210b143686ee70a8dea2399ce18165fab780beaccdd486ddf12f4","pub":"af344fce60dbd5fb850070e6e76a065e1a32485245ef4f413135a86ae703da88407c5d01c71f6bb06a151ff96cca7191","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"d42ae68dd682cc9d452c368d014df1ba2a8bcaae5da25cd38f82c2ed77be2a46\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"4c22bd948efa3e749eb43290f1b046ea3acaf3136a113fb37cbad018b0d98ed3\",\"params\":{\"iv\":\"03563aed96b368546c55c9356256b383\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"a2ce7b73e0662496a76795e9444f80d460952f3d6ddf6ecc5317f4d9f500d3ea\"}}},\"description\":\"\",\"pubkey\":\"af344fce60dbd5fb850070e6e76a065e1a32485245ef4f413135a86ae703da88407c5d01c71f6bb06a151ff96cca7191\",\"uuid\":\"c69794f3-b856-7600-d0bd-e8bc03d41aff\",\"version\":4}"},{"priv":"45113325259c7fad43feca5a07d1182e80d27dec21b069b7aee357965b07b947","pub":"ae241af60691fda1cf8ca44d49573c55818c53b6141800cca2d488b9a3fba71c0f869179fff50c084657831fbeb42bf4","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"107c56dee2dc2c2fbd912c145bfeb7227fa0df448d57eb12e2ddcc4e4aecdedb\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"1e1c6b60fe722abab511de2fd82a1285e29d69e58a2a76d1b468a4b564d64c57\",\"params\":{\"iv\":\"4eb9f796c995c75c5184bb0f08c2f513\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"2c71f7d2845d8b4b21c691cc871167f1d73702dea72c0e8efbac450ed5cfb183\"}}},\"description\":\"\",\"pubkey\":\"ae241af60691fda1cf8ca44d49573c55818c53b6141800cca2d488b9a3fba71c0f869179fff50c084657831fbeb42bf4\",\"uuid\":\"41c296a2-5781-01b3-fa24-5114c9ed4093\",\"version\":4}"},{"priv":"4894c61db725b9210c3acd58136797e7295d59b3a1497735fb59d5c5264bd89e","pub":"96746aaba64dc87835ba709332f4d5d7837ada092b439c49d251aecf92aab5dc132e917bf6f59799bc093f976a7bc021","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"6e6e18365b3fd69f0f324184d656690c1e6fd9766423a31d33731833b44cbaa0\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"95d4a721ed18fb8e6503048a283052e846b058b90816411825ff22e62b9a141b\",\"params\":{\"iv\":\"ae6cbba4af4404a399b0f46e45e39db9\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"d4736c4966151ca2ce21ec710271f8e8ad7f34814d2a38f9aef3b3d85a04ef5e\"}}},\"description\":\"\",\"pubkey\":\"96746aaba64dc87835ba709332f4d5d7837ada092b439c49d251aecf92aab5dc132e917bf6f59799bc093f976a7bc021\",\"uuid\":\"adc60ef7-7ebc-7b90-503c-9a859871f619\",\"version\":4}"},{"priv":"392414fca0757c30af12c4a63afaeee64cf8a92254bd097ecd9c7696b333305a","pub":"b9d1d914df3d4565465c3fd52b5b96e637f9980570cabf5b5d4aadf5a329ac36ad672819d997e735f5052e28b1f0c104","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"475c77c83c1fada28bc4fe6bf713c372d9a19b01957dfb72f5d221d0bb4debb3\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"552e0f475503b0a62f1df975a49a418a69aa12ece7565421e92cdb52371c0c32\",\"params\":{\"iv\":\"f4b6e8d17ada4093f56373895416c961\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"ae32e4770896991dd46cf3a10ac2327a6817902a3f803e29b10c98c21087bc67\"}}},\"description\":\"\",\"pubkey\":\"b9d1d914df3d4565465c3fd52b5b96e637f9980570cabf5b5d4aadf5a329ac36ad672819d997e735f5052e28b1f0c104\",\"uuid\":\"feb6e192-3b59-62b6-b6b9-1e7f3e248680\",\"version\":4}"},{"priv":"3e1c4fb1a25381ad757a5a2c98a522d89c796e9ad009ef00c632efbc859a9623","pub":"963528adb5322c2e2c54dc296ffddd2861bb103cbf64646781dfa8a3c2d8a8eda7079d2b3e95600028c44365afbf8879","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"847a89da0b671ad0fdc9d87d6c4a39b65fce1cc289cb6cf261799c1ad97357aa\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"f5d12047f2627d282e5a2c5fe31ebc964bcf4a6d8c22a5f4c8cb29f582178ab7\",\"params\":{\"iv\":\"b576a4e9955f1a152c296a2076923d0a\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"b81dc00ea882ea833382a4fcbd4f728a0349e8a24900f6eeb268003398ce1c55\"}}},\"description\":\"\",\"pubkey\":\"963528adb5322c2e2c54dc296ffddd2861bb103cbf64646781dfa8a3c2d8a8eda7079d2b3e95600028c44365afbf8879\",\"uuid\":\"c810b0b6-003b-d87e-7bc9-591edcc4c24b\",\"version\":4}"},{"priv":"2799ceccbdaf1e36679b413193a363bfe6d2d35c8cf6ff6151165707461eaed7","pub":"b245d63d3f9d8ea1807a629fcb1b328cb4d542f35a3d5bc478be0df389dddd712fc4c816ba3fede9a96320ae6b24a7d8","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"1a3636a3da2c69f74ee871046bd2b315c3c2466db4c383b375008bf469bf3752\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"ab3735aae16318005423b617c99cf20d8f95e8e863977bccf4a5a4c7cd26dbc5\",\"params\":{\"iv\":\"ab2719d5f9b840b644d3b2889c890bd9\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"750b364a451921b99868d342b0ee31f4f237b0387f39298b7856f6f9920580d2\"}}},\"description\":\"\",\"pubkey\":\"b245d63d3f9d8ea1807a629fcb1b328cb4d542f35a3d5bc478be0df389dddd712fc4c816ba3fede9a96320ae6b24a7d8\",\"uuid\":\"831b18b5-8dfc-8514-925a-0791d2f5c04b\",\"version\":4}"},{"priv":"27cf8e217d8481db8bc343bb6f5eb2993dc43743a2653e221df6db97be2cf004","pub":"a98ed496c2f464226500a6ce04602ff9ef133ed6316f372f6c744aee165149f7e578b12780e0eacec307ae6907351d99","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"47d646721a33dcff2dd4b79e2d1869d6679731969f56784817355e2b2e2abbc0\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"e32b35192c4d1a6ccac6fb2019695ed7264e7e0a6d78d6aeae937fe4480a899b\",\"params\":{\"iv\":\"1ae0722fc28364b1d1f4ff7f337bfb51\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"dc03787229db3575dcc11d3b56044b9c30899f5cbcf100bcade42eee1f97d20e\"}}},\"description\":\"\",\"pubkey\":\"a98ed496c2f464226500a6ce04602ff9ef133ed6316f372f6c744aee165149f7e578b12780e0eacec307ae6907351d99\",\"uuid\":\"185ed916-44a6-c21b-b32a-45e86aed1f08\",\"version\":4}"},{"priv":"16782f17ec7cdbc9973e86b179ba8d779afb8e6c28cd5b9caab657fe183f64c1","pub":"ae00fc3de831b09661a0ac02873c45c84cb2b58cffb6430a3f607e4c3fa1e0932397f11307cd169cdc6f79c463527260","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"9df194483ae414d212e8cb76039eb67ef31ee70818e56779c48f4927210eba3f\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"f2f4307bf29a979c145ac1d709424f8d6d32bafdb34af0e06a5da7e501c65275\",\"params\":{\"iv\":\"bc52fec9877b0f573b3c0b2d74210ba2\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"2a16500f531562b6b346f58ad9fa7357156141f66186179852b5c129b57074a5\"}}},\"description\":\"\",\"pubkey\":\"ae00fc3de831b09661a0ac02873c45c84cb2b58cffb6430a3f607e4c3fa1e0932397f11307cd169cdc6f79c463527260\",\"uuid\":\"504f1bb9-96bc-0258-25ac-826a004aa779\",\"version\":4}"},{"priv":"575ace3c2bf7a175b526d296e8b022357c7ceb8e799d1029d5b267d8598f449f","pub":"a4855c83d868f772a579133d9f23818008417b743e8447e235d8eb78b1d8f8a9f63f98c551beb7de254400f89592314d","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"a26469d603c855acc26b9526138878b695407cee224ce0ab1dd649062991b69a\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"7cc68ba450ec8bc5ff163cd2b3c0c177cf320e985ace289eae0a9cd19d2b048b\",\"params\":{\"iv\":\"cee71a3bb67eba5e29640614e8464f61\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"82150a6530e2b3a73dde6c91cd1838f7447e1d0bd79000bb3e6092fbe59064f4\"}}},\"description\":\"\",\"pubkey\":\"a4855c83d868f772a579133d9f23818008417b743e8447e235d8eb78b1d8f8a9f63f98c551beb7de254400f89592314d\",\"uuid\":\"182175d7-4885-2812-cefc-04542ec58493\",\"version\":4}"},{"priv":"2c083f2c8fc923fa2bd32a70ab72b4b46247e8c1f347adc30b2f8036a355086c","pub":"a9cf360aa15fb1d1d30ee2b578dc5884823c19661886ae8b892775ccb3bd96b7d7345569a2aa0b14e4d015c54a6a0c54","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"523c6909409886c46e8b147808dd07783cf1e95a6cdb8a1efe7af86a68459fbe\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"4d915c731bcc5723e9e38b1bea4aea2ef8afe7160de5fbbb8cce5c4f782ace81\",\"params\":{\"iv\":\"f8f6f657bad19e4d428fb8e4d0040309\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"2b05c678698efdb639f6ec379f6ca7983e522ed127c8e55e5976ea908cd17d39\"}}},\"description\":\"\",\"pubkey\":\"a9cf360aa15fb1d1d30ee2b578dc5884823c19661886ae8b892775ccb3bd96b7d7345569a2aa0b14e4d015c54a6a0c54\",\"uuid\":\"9922d476-4806-8326-8b51-e8f128adc0e4\",\"version\":4}"},{"priv":"178676a9cb7a49e14facd1460d15cd18219c926df8491b118bceccbac3103328","pub":"aef9162ee6f29ee82fbfe387756d84f9ac472eb8709217aaf28f5ef0ea273f6210e531496470b30d2b7747216e3672d5","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"8d3a7a43118056aae8c949eef90b30d4c89912e8b6df33024909bc7989245253\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"41548cb978c25310fe5d69460a2facbc4d22143801c6b81d021833ea47a7562b\",\"params\":{\"iv\":\"fe5a84844b4466a1b90e808f3d60889e\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"f652916206163c754420392ef19fd43cfd7177afa1c6d9107f4d5046a2d046bd\"}}},\"description\":\"\",\"pubkey\":\"aef9162ee6f29ee82fbfe387756d84f9ac472eb8709217aaf28f5ef0ea273f6210e531496470b30d2b7747216e3672d5\",\"uuid\":\"375e289c-8a21-d988-fe2b-aac87c51ef90\",\"version\":4}"},{"priv":"271625ab9d8ff3d0edddea855033c1d7921842bf39a424b99a6978c2a86b1d65","pub":"b7e6e187ed813d950a9a17d1e70c03e4de2903596c4c5ff326848515c985deee38198efebc265300cd4f1d6bd7b5d264","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"4dbd88c37c32f86e01d1d2c5a6483afed65c7a9bd537f9d41a98d03385babbac\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"29d45b41d438dec14e8940e6ae14cce0b678af01319353a5e38149ddfc80b15f\",\"params\":{\"iv\":\"74f83487a6ff5b419902d36339d16c70\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"f4c092f0c9b18154c987b3c11ae84dee43333b4cb540135bf2ecc80b6e020f60\"}}},\"description\":\"\",\"pubkey\":\"b7e6e187ed813d950a9a17d1e70c03e4de2903596c4c5ff326848515c985deee38198efebc265300cd4f1d6bd7b5d264\",\"uuid\":\"8aca396a-3ad1-c13d-3766-9adff9aa9530\",\"version\":4}"},{"priv":"03549ec8a97668607b66b4d211345c1deb974ee4c6c55e26f98ee70059381bcb","pub":"81054bd51ce57a8415f0c8e0f2fbf94f5a8464552baa33263c20a4da062e5ed994a4d32c171106d2008cd063f48f6fe2","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"d54d11dd2b6fb6e7d542c75f753ea0bbf893b11aec34e811d9cf6c8a331df212\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"aaf8e9d5a3f79ea85c89506f6e00079f9cfb8912d9865d75903dd18f5e9b67c0\",\"params\":{\"iv\":\"929c725a13c583865dc956a984403ab3\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"34ca29d5c43d89543873b728e0d4fb97def7db9a8f49450219d1463908a9fb73\"}}},\"description\":\"\",\"pubkey\":\"81054bd51ce57a8415f0c8e0f2fbf94f5a8464552baa33263c20a4da062e5ed994a4d32c171106d2008cd063f48f6fe2\",\"uuid\":\"30e0429b-da90-a976-7d38-287ebde35f1c\",\"version\":4}"},{"priv":"4f4c9809b9e51b656ce9083ac5cf551986a9891395156d3e8effc125b3e2b015","pub":"aecc56f2b1c4011d450214d3e1254479d583a6a5c2c06fbc049512731f76227d140df9f36a3f76b4ccb4df1342403573","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"2a46f7a60ceecad9d83c66e41403a32f6468cdf73565c4a1392e5713e428b598\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"4c79f03f535eaefe18d03f4530603d5b53182e9a4023beb7b37e19f2934d09d5\",\"params\":{\"iv\":\"746be97f2deb376248bcc724a0ac2a0e\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"9f8ed3a9a08cd9de01b68258de211209d7189d76da8b2566f9feeceb99c7f9bb\"}}},\"description\":\"\",\"pubkey\":\"aecc56f2b1c4011d450214d3e1254479d583a6a5c2c06fbc049512731f76227d140df9f36a3f76b4ccb4df1342403573\",\"uuid\":\"50c428ee-4d16-929c-778f-72e56c267138\",\"version\":4}"},{"priv":"6b0a7df36e52c9f48f814305c4d66849862e73f69bef9e7b78ddd873905de882","pub":"9243ef5ed3bd28892d1ef4f7aaf29faeb9c0e725673cd38e308bd756f20a9ee09de5cd9822e5e77bd03b734ef8a92695","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"e300033065c516cb977a37bb3182b372a03f22587515da08d94703af47df6e84\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"4f8dee980101937671880bc8ee71e5611ee910d93259ca86aa69236174f1d68e\",\"params\":{\"iv\":\"dc56a6c107ed07db10ed19cc59726832\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"ab268fc51002df071df27b6af74a4253fa6762bc0b5df52691a4d57776ad021b\"}}},\"description\":\"\",\"pubkey\":\"9243ef5ed3bd28892d1ef4f7aaf29faeb9c0e725673cd38e308bd756f20a9ee09de5cd9822e5e77bd03b734ef8a92695\",\"uuid\":\"ec865de8-a88f-cca8-0b17-87ee495419bc\",\"version\":4}"},{"priv":"5cc36b430ddf7f0f7ed6f97460e1aa2e5e5ff14f47d8f205b8fd50a2bab8ea0b","pub":"925b1fb57c06b5668567bd5aa196531032d6f8918dd4f702017c11b59288e3bdb98e3820ac22780f73580a4119de4bbc","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"55b50986e646bef3b2463ae04de92a42a04c146d1d3e396b1aeec4236ac9f818\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"8b36a45254e97e13bc07ebd6f8d5575aef44ae9616fa038f78174ba0e25d2870\",\"params\":{\"iv\":\"a7f2a079dc44c154f43afc378e116267\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"342753afb93fabe4b0c825bf24d556436a4bc44f677e8c65d982476891c26960\"}}},\"description\":\"\",\"pubkey\":\"925b1fb57c06b5668567bd5aa196531032d6f8918dd4f702017c11b59288e3bdb98e3820ac22780f73580a4119de4bbc\",\"uuid\":\"577ea3cf-3edd-e719-0b39-0a18617b3ca2\",\"version\":4}"},{"priv":"0a5c398398c00865a46863d12f31d61a2ffbf4e22155741fce6959c815e9abd4","pub":"9648b83a4f09b4ca2021f0c193c5c41df1465715761bca52671ca790a3e92d67686b97b3d54c6110409779df887bd9c6","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"331f936a4cc4c036d7443fb97cb19dbef6409b8ae3b03e4ab6f0f797cad93f46\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"6882ada16dc444635cde877f8098576ff3c9147f9f9b579490247b4f9a1eec06\",\"params\":{\"iv\":\"12d3411ecadbb66531fc4439956b3e60\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"261a95b43660aa8c950b4a1e689d60daf0cbe7ff249e3a79ee69b2db0883a8dc\"}}},\"description\":\"\",\"pubkey\":\"9648b83a4f09b4ca2021f0c193c5c41df1465715761bca52671ca790a3e92d67686b97b3d54c6110409779df887bd9c6\",\"uuid\":\"4398747e-6ca4-5ce3-6f68-a838e812bed6\",\"version\":4}"},{"priv":"37e63244dc9308ed78074cf7f2a2172c05ee5a9959b87b18b6716de78675d2a3","pub":"a34febc12af07316580b480364f90a76313ccce7927bbe263e27ea270853b02ad4d1428caf55363f3ebebac622cb9fd6","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"f312b7cd190a699c86f455a9e3d3afff365ac456606e2ca8243e85c7cd648e32\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"f88338b17b1e9d0cabe8e11e4b54481f40635353b620cde9048f7ba1420cf88d\",\"params\":{\"iv\":\"60a29da00d8d3eb3c3a53bc9f967f2e6\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"044de8ae0326016551637a5cb3e254e753fb4a80a6dfc967c7aee3e0762e89bc\"}}},\"description\":\"\",\"pubkey\":\"a34febc12af07316580b480364f90a76313ccce7927bbe263e27ea270853b02ad4d1428caf55363f3ebebac622cb9fd6\",\"uuid\":\"cd2bc283-b359-b0c1-136b-3eafde46f546\",\"version\":4}"},{"priv":"27a4c9d59b290cab5451cb80ffee9cf80240d55d18d9ebb4fbca13a1a9814db7","pub":"b8cd1cef89aa1567a6058957442a698cf1b267130606f749451152959a5dfb50d243890d4adc2c3309f7696d54af1260","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"b72870e8fdd0de38259c387ab55aa2ac8e599e316db73ab0b29ff1d622d8814e\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"ad0832f9a4ede231ed510e5de12945bd35f4e33f23bdfa2369bf576c2eb9bf8f\",\"params\":{\"iv\":\"d4ea7d7c4929c6b8cc32b599b7bfc142\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"4f4d480354aa3b77ad07244d2dbd8ff3386fa174844b7b66e6a666ea41abd59b\"}}},\"description\":\"\",\"pubkey\":\"b8cd1cef89aa1567a6058957442a698cf1b267130606f749451152959a5dfb50d243890d4adc2c3309f7696d54af1260\",\"uuid\":\"c9a4b1c0-366a-af1d-de3c-1108a8ad6204\",\"version\":4}"},{"priv":"4157396c007870224940ee87f1bd0f30ea79e3f9593aab1fa9ad76504cbbf312","pub":"92a93728c252a45ef587ca53a037593912599d82e2b8aa1b734b99d500a0ac8c142092ea8b3c2c34a28dc8ddf337a249","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"f6976a5259fc925b6eb94d7c3b14098dc803ae606d9f7d26f1d134c716d66970\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"21e62e8abc1bec025a0cec128808f987982c229e1f9ff4f84122adbc9293e185\",\"params\":{\"iv\":\"2c841677c6ba3ae627811856b1505144\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"9ad4a75b7bd558784a9f383b0fdc6dd676ea312e6d693c06e066255ba48c5771\"}}},\"description\":\"\",\"pubkey\":\"92a93728c252a45ef587ca53a037593912599d82e2b8aa1b734b99d500a0ac8c142092ea8b3c2c34a28dc8ddf337a249\",\"uuid\":\"b75bbd2e-c582-7c15-f1fd-d28ede66e42b\",\"version\":4}"},{"priv":"5ad466a0839a7281813355ace68ee2f429a4ab845b0bd3ffb09532428a24fa6b","pub":"b7ee0ef26144de04d9cc80864b869b7ecafbf1b7c0050403cc3c3b514368713b8bb708c464568a18c837e1fd21d09063","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"143c46caee96c5f038e2474c742e9dcef0d0493196dada084fe46b1f7fecc0b5\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"585a563a2bbde05f6d239b480fe9e889783952012dbd382aee8faf68a0f598fd\",\"params\":{\"iv\":\"4dde03a843988d9ed9f1fb53fddb6160\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"0c60eb078635d117ae1c2468e96cec1e030afa9d5f38ca1f98f8ed499d888c56\"}}},\"description\":\"\",\"pubkey\":\"b7ee0ef26144de04d9cc80864b869b7ecafbf1b7c0050403cc3c3b514368713b8bb708c464568a18c837e1fd21d09063\",\"uuid\":\"e08d91c1-4d4e-a115-4140-0c2670ca7eaa\",\"version\":4}"},{"priv":"0ee9b0ad9813c67fc03c881f6d57d90277d32ad16b5bd291062022fa3c516965","pub":"afc0fa2ed6a270de6122a19d4600380b7f9b5e974d16f095f1702f55792ecab0128b155a69f17ad64a6de0a7063642ec","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"66baa5810f17950af37d87d3b09e96aaad0bc16307d1641d183b707e19b74a6f\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"3ab9da4a443f6c506bc8db467edb8ebee1253277c62d77d8bd2f2c8fbcb59174\",\"params\":{\"iv\":\"2dd2e1815ff2b6e1445b139f55db256f\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"200311e734a7ea18fb56f50bb2e5676d5ec8c3c3875719b568e8cce2f00db88b\"}}},\"description\":\"\",\"pubkey\":\"afc0fa2ed6a270de6122a19d4600380b7f9b5e974d16f095f1702f55792ecab0128b155a69f17ad64a6de0a7063642ec\",\"uuid\":\"d49e7b88-a8d0-3a83-ee7d-7bc2a7d039e3\",\"version\":4}"},{"priv":"52425f5eb9fb138f0dc65e7b1109fda1e650169f3bda1a0dfe99b4d6c0d95260","pub":"a5869ba554d1432b09ee677c117511291b9901f169e870831f457caa6ccfab376cb1fe33813bdb495cf4afec9ea35fdf","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"6921c12058edfd2488066022b818ed42efbe0745be70a31305a568b4ebd6c763\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"d23d816d3368228fc8dd51be0055b01d61c118c8f9f542cb8e11e6a1fe260651\",\"params\":{\"iv\":\"1a045f18dfb6efabe7961856165c5cca\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"a68189dec0af857c9e912b4793831006ab014dbdddb03328fc57d54d1e5725f0\"}}},\"description\":\"\",\"pubkey\":\"a5869ba554d1432b09ee677c117511291b9901f169e870831f457caa6ccfab376cb1fe33813bdb495cf4afec9ea35fdf\",\"uuid\":\"2fdbd6b7-37f9-52a1-d533-ae9bea5920b4\",\"version\":4}"},{"priv":"46163dcef9972c338569240f57d78b084ef236164888f4b71d2ba69f5eed158c","pub":"92f43d79d9f488010b310a54f3fc2e7f4be191ca06d93e588c30c8abf59a52190e060b285ac626eb13cd95bbcc3a0a2a","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"437551306612880eb84b2cef507a25ea1c85a67e9ea33eac7b815ee09f798bb1\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"01915c31e8c247e3c517546be547f971272cbb66bdce87eed1cc6d4730b0111b\",\"params\":{\"iv\":\"81e68a943554109101aa49bd76dcdce9\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"f6cfc6c942ba584d4142ae6cb7b424b2858c55379f427ddeb2ced8bcef268134\"}}},\"description\":\"\",\"pubkey\":\"92f43d79d9f488010b310a54f3fc2e7f4be191ca06d93e588c30c8abf59a52190e060b285ac626eb13cd95bbcc3a0a2a\",\"uuid\":\"76005696-5cbe-0093-aa8b-33b80c26e4ce\",\"version\":4}"},{"priv":"015df385e001203ead487b94a70ec856e4d99daff72dcace6935fca9611b21be","pub":"9698d9519a02b64f230e5a2520401799c2ca7d69ab23a6d9817943147264bf00d409264b928718245efff4f7ee97dd5c","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"3c30d295004e06beeb5fd388053c4f2e4c3a188ed82f6f8b43a492107d60607d\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"ecdedbef21a0e8b941f1cf11790558b5d252fb5a4aeb37894bdbc1e82d09ec39\",\"params\":{\"iv\":\"37c8eb820d45504da998283758c5fdf7\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"453d5f7e0764f79c9b94806dffe000394b1466f7f4e0784641fd2ba2c22566d0\"}}},\"description\":\"\",\"pubkey\":\"9698d9519a02b64f230e5a2520401799c2ca7d69ab23a6d9817943147264bf00d409264b928718245efff4f7ee97dd5c\",\"uuid\":\"6c789f49-abc2-495e-8732-020ae28d5175\",\"version\":4}"},{"priv":"6dd12d588d1c05ba40e80880ac7e894aa20babdbf16da52eae26b3f267d68032","pub":"a852816b8e463178eea5acebb4b86d0acb6d8c6812cf313296bd271ea4d2fd89d281e5fc296df4df49019169bdf96922","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"9ac98e90b411ea59047327b3f17cd4a8c69a618da2f59094b0abe74934ef3959\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"b1e570cb6d364a8e7f70dbcf73ac9874d87f2e2ed1bbdcac41e4e437cc9fa769\",\"params\":{\"iv\":\"bd984b5ab03d3df254f848ade4e5edb5\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"d64281478697fa6cf375bcd17f2a8f3200dbc7b4ca7434286920c62e81da08be\"}}},\"description\":\"\",\"pubkey\":\"a852816b8e463178eea5acebb4b86d0acb6d8c6812cf313296bd271ea4d2fd89d281e5fc296df4df49019169bdf96922\",\"uuid\":\"e4b08053-6002-8162-f077-743af4e3c783\",\"version\":4}"},{"priv":"48f140a19ff1a607157319b01518ef2e2f1e123ad0b04568b501ece30abe5c25","pub":"8a298ee1ac0466ecaa04d5798048c6e192409af63217f32fd7e07794cfcdcd8deca055b9782dd1ad45a578a9ec10606c","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"1e494a13709fe51888e09fcdc6a39d600a753a8fe09db67fc57c3498f0a45137\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"95e240ece6b5f4db11f844d2a331a268ee5e7fe7bac09130b7966bae956ac5cd\",\"params\":{\"iv\":\"332ce69cab823dc1de792ce790099246\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"20cd1b9efeb11b5fd9cbcd3f1a606790036a96ca3e3ced1798d53ecf9dd99584\"}}},\"description\":\"\",\"pubkey\":\"8a298ee1ac0466ecaa04d5798048c6e192409af63217f32fd7e07794cfcdcd8deca055b9782dd1ad45a578a9ec10606c\",\"uuid\":\"01f3efdc-001b-ed5d-abbe-93e71f6c7d2b\",\"version\":4}"},{"priv":"39ac35d1ec70fc7a972a9971257f105a4621d92ee67d28a90559e9f34deeb5ba","pub":"ae4d49364e4a36760cc74a675500055b9aed99bc19d31abb953ea156bb5a76dcf36769d15341b850114a30ffc8057780","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"6669fa25d751a693bf013204ea051f470a7446173fa4f504010fcf126536782e\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"e6c3234354a216f3f24b13c1a863dc49d4d8f51ddf19099cb66def5726bd9e72\",\"params\":{\"iv\":\"79a5e9a1acfe92c7331d65b136a3034c\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"747cd33cb26eab59ae919db43994c78947878d89ab4faf851f92d947c17e9889\"}}},\"description\":\"\",\"pubkey\":\"ae4d49364e4a36760cc74a675500055b9aed99bc19d31abb953ea156bb5a76dcf36769d15341b850114a30ffc8057780\",\"uuid\":\"c67580db-4399-97d0-37aa-d17451540fa6\",\"version\":4}"},{"priv":"05b1b035d3cdcb6daae3559e8f4b642eb0295271ec5e21815797e522669d9c42","pub":"b397692ccbf442bfe078174c85dbad7fd605e4ff1caf2904b31e4a4c79d6444813ad9b2093ac8fbd4dd59ec7a4c8c006","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"9921ede042495dfc83b4d18e0ee1a3c9c47ea2550d98d7788b3edb44d614eb3b\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"e6bf33df3770aa9095b7de43822b7b6cbb3ae7e6304ebd519f21955115a8a8ee\",\"params\":{\"iv\":\"dbdde0665b870cd67ed23173ae1c32a0\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"06c71e67959073f3bd3a7186c7af49237ee522642cb3f44e9a9848a47bafac96\"}}},\"description\":\"\",\"pubkey\":\"b397692ccbf442bfe078174c85dbad7fd605e4ff1caf2904b31e4a4c79d6444813ad9b2093ac8fbd4dd59ec7a4c8c006\",\"uuid\":\"ec3f1364-2180-5dee-d206-b69ea097ad53\",\"version\":4}"},{"priv":"05a4ab58f5631cc428686ec91c0c032753a1aa5231f509b7e405396d53b2178d","pub":"87c9f7605d07550b46c79add5ea4e39de5014c03833669257bd6666b7ec838f53800104779940d8cdd884275a0f6a3ef","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"afdeae0793175ffdb7c4c54bbed3fd603a8ce699ed021c6b12be7b0ed41c8203\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"0a72f7b4784de8d5f6238e709a206bbdeef58f94b99eb3d86b8e02a395eddc27\",\"params\":{\"iv\":\"a68da5c399044b9382e61fcbb85a2400\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"656ca63cf2852eab63bb8b9e66f1ba599ecce3a360c11c7fa3d72ce7a4a6d907\"}}},\"description\":\"\",\"pubkey\":\"87c9f7605d07550b46c79add5ea4e39de5014c03833669257bd6666b7ec838f53800104779940d8cdd884275a0f6a3ef\",\"uuid\":\"80443cd7-2809-1fd5-1f74-08d7ec6e960f\",\"version\":4}"},{"priv":"4d943d10c772529ec625643a4af1730d669a323a393d7887680bd4e79d33c2d7","pub":"b08f7feb86786c37661afb9951a959c9b465fd11ca98fcbc908fcf49144084051f6c363e2eb4459da2c2d03d84175692","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"3d8f080f332d0ae4663202df16437fa55598d467295479977164c28ab63d8e74\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"bb44e07ce342f00d979cfe36420d5d4be647f70dc482a78e7b33babb3e325340\",\"params\":{\"iv\":\"91b7fd634cf2f31d26ac776e388d4662\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"cf6992a135c40cb02f6df80b021da428c786a2f06603c4f5f89b9308cc9ed89a\"}}},\"description\":\"\",\"pubkey\":\"b08f7feb86786c37661afb9951a959c9b465fd11ca98fcbc908fcf49144084051f6c363e2eb4459da2c2d03d84175692\",\"uuid\":\"0480793a-d8f2-32b9-7073-487906bec7a7\",\"version\":4}"},{"priv":"12a9900709b897ef39a073e15eda05ff7d6a5b1194fb98f4dabcbc515f9211a4","pub":"a48cc260df1df875176cb17493a5b53d669c091da74d5075acb8952a641b1b7ef68d01f009c1a365d2fa80937c79dd6b","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"8681988a562dde58235f91704166f23715fa3afd74e54ab75602c7f7f0c0b288\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"6123586a4f495416f1d588c246aa55effd873ead09d10bfc2630eab09b9d9917\",\"params\":{\"iv\":\"2999c86cab6e224c8879f9d8114ac1d8\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"8d21b239d0666bcd33a29b94722abb1866f9d7db6b278facdd8782c12b52a184\"}}},\"description\":\"\",\"pubkey\":\"a48cc260df1df875176cb17493a5b53d669c091da74d5075acb8952a641b1b7ef68d01f009c1a365d2fa80937c79dd6b\",\"uuid\":\"d576e86e-4333-4b4b-612d-71d7ebacb8da\",\"version\":4}"},{"priv":"20b4f56dfc0a8d1583331501baeb1905d5db9a7cbff7448daf988d916110b70c","pub":"ac9f4df3f20a16a9fefad08817fcbc9a6ee17f7512db006414b4aa6f234c2313585ef72c5776df55fa6284af4bc3f631","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"e02ca36dfc1164fc56c5e279b3ce976887607b48aaf9a55c51ec3860309e7308\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"99265dba6afc54498e76dea9eaa086db56ba871e8af5e7bd8792f4369d39405d\",\"params\":{\"iv\":\"6c518a0de0701b8836b1bf11ce854f4c\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"e8f867afd9feed92185503eb174dc9362bfd631e9d5a2079a5011b4267cd1772\"}}},\"description\":\"\",\"pubkey\":\"ac9f4df3f20a16a9fefad08817fcbc9a6ee17f7512db006414b4aa6f234c2313585ef72c5776df55fa6284af4bc3f631\",\"uuid\":\"69d44c62-ffb5-fd16-1f92-267b3be928c5\",\"version\":4}"},{"priv":"17e5bf33a71ca12d6bf386334a05e5455ef7d0ff8bcbde8a34fdb89423cbeeb7","pub":"94f0c8535601596eb2165adb28ebe495891a3e4ea77ef501e7790cccb281827d377a5a8d4c200e3595d3f38f8633b480","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"0ef25dc798f26e9b281fa87eb2035f928b3fd06a733912acd27f1257eb3e81f9\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"f6ae45769cd19dae4e427d98e832713491846316ceaaa609359bda87aa85260f\",\"params\":{\"iv\":\"111a537e3cf445e7d65b49b2d386fc53\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"c4cf882c575f93d27cb42c376849e35a650c469a5c5a4f223a7a33d55f719ac4\"}}},\"description\":\"\",\"pubkey\":\"94f0c8535601596eb2165adb28ebe495891a3e4ea77ef501e7790cccb281827d377a5a8d4c200e3595d3f38f8633b480\",\"uuid\":\"d3276e31-1c33-615f-f7ae-1fe1b5017014\",\"version\":4}"},{"priv":"2e1e774ca15f348968c0672b179b43bc50b98dca17c2215eac33513c7d970bbf","pub":"b5bb0162a4f27d1bab4c7dc3d20f5a75d6ee98c56bcd309a1f0f307685ad47ffb8a35bfdf8431b9b954b59662a74c478","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"f490ec6a7f36c1db5ec7fda1c040423c684289bbc791cdc6ed0ece6ac7635873\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"374fbefe70953be22789117e680c4f9e760d612bbdcc8702fbaa8cad90287c01\",\"params\":{\"iv\":\"d6922245a02e77e01f91d3c6a3a63683\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"0a25af69681ad0e1047757c7c774a7446253b675aa4f4dbb165ede96c6fba2ee\"}}},\"description\":\"\",\"pubkey\":\"b5bb0162a4f27d1bab4c7dc3d20f5a75d6ee98c56bcd309a1f0f307685ad47ffb8a35bfdf8431b9b954b59662a74c478\",\"uuid\":\"b3c8559d-6378-3951-0ae2-3f833e669c37\",\"version\":4}"},{"priv":"2847a370e2c5fa8d377d5a2394b469109e937c0dbe50143ead86a5c2254aa873","pub":"8826e820179fd321819e78ffee16f50ac528db2da71ad8c269f60b878bc4887c79c0545b3d750e86e490d5ba9083cb70","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"665bcc9dd12127dc1db4b57f86c69305d4a9704071e27628043940072dcd6d47\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"4369ef578c8aae9515bb30adedf9d0563b60a1cd74cd725266fd4ad62a7f102a\",\"params\":{\"iv\":\"daa6257907e50bb8862b7eb187272ab0\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"07a85f39f0c6bdb0d87fe3cf62596437a2cb119254357efde1bab928f9582be4\"}}},\"description\":\"\",\"pubkey\":\"8826e820179fd321819e78ffee16f50ac528db2da71ad8c269f60b878bc4887c79c0545b3d750e86e490d5ba9083cb70\",\"uuid\":\"5fc6164c-8b90-4e38-7a05-b8229f42021f\",\"version\":4}"},{"priv":"45662b78ca207899aba931a3cde6e8b09d5b5fee8eba985fb4a93c0d05e03ec2","pub":"92977e71396633d442f61e16a0cfcf8ffad0af93c9f1b7fdf4f7ccb816de052925fc192922d6252d325ef9fa2e0595d2","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"111204bb6dd35998441f4404eef42640303aa6a39d947726679ed3f35e5eca71\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"86b3503b4e3ca6ec6c693a601ceafc7c44e266f306cd9c091a43c2c6985713db\",\"params\":{\"iv\":\"db2cb3dfc13a22daf971fe6f39021c43\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"664bc79805f3757e4d80f02e56f57b4258da90462be71d7741db24488416639e\"}}},\"description\":\"\",\"pubkey\":\"92977e71396633d442f61e16a0cfcf8ffad0af93c9f1b7fdf4f7ccb816de052925fc192922d6252d325ef9fa2e0595d2\",\"uuid\":\"99080134-7150-e004-72ef-830a5208012e\",\"version\":4}"},{"priv":"363649c297fee725b9f601aa4f1b4c8df2ca728f0629313e48f471aaeb11ee1a","pub":"91ae4686b0d20470409f020eaca826c3efc6c1926ed25d05e6f0f7916391ec89c2341917277c437ac8fffffe94b68111","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"862c1be84dbf40a22c5a739d0cda7d20c55a3460c28cef19a309031899c7f670\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"2b64c720d25eac45e2c8b80e2bfe528e4728ce67bb9850ae517ed84d3ef5f54c\",\"params\":{\"iv\":\"0a4995f52f4117a4ff7bc7b728260d78\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"443e79aec0151b50e093f4694c8585f9e9cfd25a87df2f9e1286032b2b1a3cd4\"}}},\"description\":\"\",\"pubkey\":\"91ae4686b0d20470409f020eaca826c3efc6c1926ed25d05e6f0f7916391ec89c2341917277c437ac8fffffe94b68111\",\"uuid\":\"83078266-6932-8dd2-1dc6-0bfb4a992543\",\"version\":4}"},{"priv":"6eeb32dd0fe010051825e3ef409b1a7c66ff6daa9c61eb351c5d760684de8e6a","pub":"8a0d241955104bedacb3b829162f2b457915c2beb9018ede8ef8ea80f401b471c42354358da9e62b51c38d54263a78a9","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"c198539a98ef16e79dd90e8d37952ff08002de3ec4365df1d10bbd6b677e154e\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"edf9d3115cd0e53af7df25654b043d54f72d21ad6e80dc66409ec1c90a8f4b1d\",\"params\":{\"iv\":\"67b75594da404f5e686f5d71939c406d\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"e0f3c9b60b10e783ca7b6977c9a8f363b27d340dfc40b8d77e1aa73cd74ecae6\"}}},\"description\":\"\",\"pubkey\":\"8a0d241955104bedacb3b829162f2b457915c2beb9018ede8ef8ea80f401b471c42354358da9e62b51c38d54263a78a9\",\"uuid\":\"bb0e4565-7a4d-7e3f-040d-aef5b0daaaf2\",\"version\":4}"},{"priv":"2660f3d479c1708e620a11c91b101e87df87551a6bbf88635fc7d6cfa130f173","pub":"80a2be2c7dbce8ddc2eba03522697587c375a5a9e92d4b31ed9e3c34bee047095d93e3c70b1662b3faa301f5b19978e5","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"4f83346db9cad7a3987f2b204268a1fc51538520b5c93948ea3275a7b23b1485\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"886914b3c9ecfaf3a2099ca707a7691f76699595eb194a0ad63f13dfce7f4cd1\",\"params\":{\"iv\":\"59c85dfd7ad5bb47aa65a24d3332b91f\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"6cf9c17b73b636d630d7769b08aa4d869dd7f3bb777f8a934753ef208e06a1bd\"}}},\"description\":\"\",\"pubkey\":\"80a2be2c7dbce8ddc2eba03522697587c375a5a9e92d4b31ed9e3c34bee047095d93e3c70b1662b3faa301f5b19978e5\",\"uuid\":\"dfc79f83-6fd9-4e69-88ef-772b7a84fe1d\",\"version\":4}"},{"priv":"006edac0cf64bfd91bc691c4165efe1eb5cf80672ac06d2096f72a48a5dad4bd","pub":"86a73886aa0114bbdbba346cb7c07376c81b549a4802c24d98ebbc54a6a1b5d2ac874ef657cfb27c3644fcb85f97a2b5","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"38d5741d53b7b5618e0b49dcdb2c93e7d7e573fd477773310df4df92a83bbdcf\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"8584cd11bc6d928c42db9e3670b3869dd304ecf73603b63e0e58869d349b2916\",\"params\":{\"iv\":\"a9d2c68263779efa23dc0483289f3e72\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"2057b5c6711502aa860d51cf4f34eb2ed9235e712e7f2db4eaaadd2092c2df3a\"}}},\"description\":\"\",\"pubkey\":\"86a73886aa0114bbdbba346cb7c07376c81b549a4802c24d98ebbc54a6a1b5d2ac874ef657cfb27c3644fcb85f97a2b5\",\"uuid\":\"45aa7a31-c5d4-940d-f0b9-99977672e23c\",\"version\":4}"},{"priv":"64e58b50d9d846d40a650337f0f38e36811af7c2bc4868c752edaa74793fce93","pub":"a98c264dfc3bc3ed635df5dbfd54909e77600cd68480ec201d9f5c416580591daaa9735b04743e10e7fc6370a8189775","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"24edeb0bc7293f55ff7ee4819cc46932d211725f0f9769bcb88943ce922ba7c1\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"f97bb8006b5e0dbfaac5c14025638ea2663b10dd97b313eb5c89161d6428c428\",\"params\":{\"iv\":\"00d70a9155ce636585fd944dec627cf5\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"50f04e6b1405214e9936a71cb118b68fc2bdcc3b11f49372af396a2bce58ff11\"}}},\"description\":\"\",\"pubkey\":\"a98c264dfc3bc3ed635df5dbfd54909e77600cd68480ec201d9f5c416580591daaa9735b04743e10e7fc6370a8189775\",\"uuid\":\"8d43c872-c9d6-3079-0e97-2109e78559ec\",\"version\":4}"},{"priv":"55318f8f4b4c6455b9988c880b8698e6fb49702cfc34813fc2a2c862bf717303","pub":"8bb7aa61aa8bbd2b7825d28c340da89b625381232dcf2742276b4e3a2e4a0f42ef68794fdf005d94014636732fba2f40","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"39a93d038230ed22a705fe8c1b9647f112300a9cb7c05616185883021f60d728\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"7194934a1e90b545cfcca05ce52499c035534a01ad53f48e6863a534b196a820\",\"params\":{\"iv\":\"453cf0213302fa3b29789a62ff34c8db\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"1f1dd42147d01aa07575a1a707cd2301663cfb6cd84a2ee9fa03f0362129b185\"}}},\"description\":\"\",\"pubkey\":\"8bb7aa61aa8bbd2b7825d28c340da89b625381232dcf2742276b4e3a2e4a0f42ef68794fdf005d94014636732fba2f40\",\"uuid\":\"d6f3b6ca-cabb-6928-9e69-23b81418ba94\",\"version\":4}"},{"priv":"5754d71500f0fe33cbc9d5b322b2a9f84101869d2d984696e93c335508744064","pub":"8bb9e1693eab1496d7583bf22fb1f2a475934c63b4d94118940617aa187bc277f738223e0ec1ce8a5566035d9bcc5470","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"1d19be032415e4689aa5a525509f59e926a1d12ce556e89c696cb4012c5d6441\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"02448d779e2f83527da42da30305a1a5cb56b9e6c295f425191f58c8b551c586\",\"params\":{\"iv\":\"c4b0a2ac16e215c5403e4b28c2dbe5f1\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"60584805e9fa9f9937f10ad8633d21f6882022e5ff43cb3bf28e3dde23677f78\"}}},\"description\":\"\",\"pubkey\":\"8bb9e1693eab1496d7583bf22fb1f2a475934c63b4d94118940617aa187bc277f738223e0ec1ce8a5566035d9bcc5470\",\"uuid\":\"63961a82-0601-ed64-48a5-14a379f20c7f\",\"version\":4}"},{"priv":"31dbe97b2f57d7309c06540909b9c77aa52dc1795130e4b1ad34b66e6202eff6","pub":"afe6eface52fb6de91055a81abf9aa6e42ce2ef36fd8ae0d09aec6e5d8bd40a065dfccda6104af94df3f7a5854559ef4","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"e20ff789c0482b6facade9faa601e2a59c50e62cfd0bfc9e71f7381754a768aa\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"da40eeff3852ed14e6612146d57039617f0d6a81c8f36fc90abfe258f0e756a2\",\"params\":{\"iv\":\"27a0198e0664e162fb0f148c21e813bd\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"0f6eb91dc061b1994b39175f6f9134716e7d34a45f79fc06f703097757b3ec8b\"}}},\"description\":\"\",\"pubkey\":\"afe6eface52fb6de91055a81abf9aa6e42ce2ef36fd8ae0d09aec6e5d8bd40a065dfccda6104af94df3f7a5854559ef4\",\"uuid\":\"0fed6fe7-6537-9244-ed07-527c586bfe1b\",\"version\":4}"},{"priv":"2cc88587046359f41649b4e3bd10b236c5acde1202e547f2db56c47dca103008","pub":"aa241b2afbb33f92a5d281aec9c8bac8997c1dddc051455fc0f334de48320f160b5029b552495aed21ed9ce252aab499","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"fba71b0610f04e6701788a0ec36494c68adcb6f62183524f3a02d7574b98834e\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"a4d995aad9b81c0e2a61a84d27822e429fc631509704ca788e22913294fea19c\",\"params\":{\"iv\":\"d387d7a46221dcc046d58c45cdeb5648\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"e694f276da58db6f0a5f159e6cdb6316db7651f41fe7ec1e3b283de07f12405f\"}}},\"description\":\"\",\"pubkey\":\"aa241b2afbb33f92a5d281aec9c8bac8997c1dddc051455fc0f334de48320f160b5029b552495aed21ed9ce252aab499\",\"uuid\":\"b47c5b8b-1e30-5993-a0f5-64de24a68312\",\"version\":4}"},{"priv":"02011606373959d9a2242d30aa53f8954db1960fc87ebee3475ccaa5f87c94f6","pub":"974b2aed17665e51c1c091998ca9649875330947de3d2733a5bd2eda69b0c593cdac2e416993a87f9a17aec1ccdc2368","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"968ce6adfee9ae68c07a763f0eb2cf51fe3722147d1bbc4ff627874e62517a5d\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"41a672f1d596f69318e144aca77b16366f5dbca62ed9ea865a7a22d46c4ce596\",\"params\":{\"iv\":\"845f563b6cd38680bfc9760bd9e5e9e1\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"a853b36fa72b6b13403a39c3bff78b15b6ddb64a78a08b3e369c8f49aa193d2e\"}}},\"description\":\"\",\"pubkey\":\"974b2aed17665e51c1c091998ca9649875330947de3d2733a5bd2eda69b0c593cdac2e416993a87f9a17aec1ccdc2368\",\"uuid\":\"91329e15-16dc-23e4-3e85-5a7d64124f3f\",\"version\":4}"},{"priv":"09b2ff66b54529a7e98ce54db6dd36a465992727ea797a0e148ef43c6562d138","pub":"a3177a98f653cea646f525f0f13348efb27e0d3d0cd824704c91d8d959096d259c9e577298f444acc629920c9619be50","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"10ee26213b022e2074156514b36c7a8c5ce2d8a3944172bc9bb2a7adec0d417a\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"0aea8a01a735c976cc41057b2e535e14a4f4aaf13d68535dac9672518de8aed5\",\"params\":{\"iv\":\"4cec2720ea3c5e0d029d27b8b9aba6e4\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"31d77397d1f5aa8411c3c32d0f2abae07386e1d2a71282450f6cc2f2bdab944f\"}}},\"description\":\"\",\"pubkey\":\"a3177a98f653cea646f525f0f13348efb27e0d3d0cd824704c91d8d959096d259c9e577298f444acc629920c9619be50\",\"uuid\":\"678dbe49-3f5f-ce5f-68fa-1a2fe3246bef\",\"version\":4}"},{"priv":"17874d3f4d7c1bb5dd1893dd73233cd222dbdca0e381557cdd0f38b88f4f6afd","pub":"a8a18565733e70663c77bc0c80e08f50de908cc048152f1e7dae85d8cc218afbdd337d7d33a44e25400be2f06907c64a","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"3202d998ca65c2ace32620706775cd3df251251e09b47edc74262f2e712c5abb\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"0551fbb17295d1d1471f3dc05d6d08df5327c829ee62ccc1405fc90948ecb32c\",\"params\":{\"iv\":\"239362498c9f0ebd73c0c4b48aaf38f6\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"4277c9e74912f5d2cd034b359f2954782223928579450607017defdaa50c2f59\"}}},\"description\":\"\",\"pubkey\":\"a8a18565733e70663c77bc0c80e08f50de908cc048152f1e7dae85d8cc218afbdd337d7d33a44e25400be2f06907c64a\",\"uuid\":\"165c02bd-618f-211c-139d-0fd5d6abf6bc\",\"version\":4}"},{"priv":"13dfa8f7b9de6932f65ec6b48e47d4f070997e456c0519be24eec69cd33ff69d","pub":"902ff56a7a4c5b6cc57708ea7b0b72cb54e4b821c95373f503648185f15208f6ca6281677fa0ecc14f911d7b7ca04f4e","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"2c0898c7fb9c150ab6275bf204cc467f5f539f5143aa9e53f88770fd38d0005e\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"6a2cd3ebc553101bfd6bba237dc832a5a69cd93b289673a8d7c1b583861d9973\",\"params\":{\"iv\":\"939ce7bcd25fc4473ad724ae536369bb\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"933193b9e881afcf7cc54cc0cb3282e06b810aa8d70e9d849e2b73ba963e98a8\"}}},\"description\":\"\",\"pubkey\":\"902ff56a7a4c5b6cc57708ea7b0b72cb54e4b821c95373f503648185f15208f6ca6281677fa0ecc14f911d7b7ca04f4e\",\"uuid\":\"e2247371-4513-2438-59f4-c378ec90f4e8\",\"version\":4}"},{"priv":"011c96ea072abedcb063f9098823d3cf3141443625d5d6088e9f0cea9867cda2","pub":"98f011f9a4dff94eb0352ff6e21b7df45e2a112bd5d789b5729111b89b368e7ed554e4d1c16b72f4d105090173cafed2","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"2d5d3f0b33ca5258bd9c44e47e4fe9f29de23e478a6c9b27ad71372cf3c2ed18\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"a90deaae05d17f385a00f17f702e47fbe7bc2acea0b7316114cf5aed2d515a5b\",\"params\":{\"iv\":\"03558b50e68f9a73b2ed15771a400566\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"98552cb1bd89d747a8217d17ae3a0fd90985cc5d479f2eb579ae3804f8922a77\"}}},\"description\":\"\",\"pubkey\":\"98f011f9a4dff94eb0352ff6e21b7df45e2a112bd5d789b5729111b89b368e7ed554e4d1c16b72f4d105090173cafed2\",\"uuid\":\"f3324ddf-5a80-83e8-740e-9e9510893cc7\",\"version\":4}"},{"priv":"33c10e17c93e4498b21ccdf965f4c32c136cbab58478398d658974ea3214f8b1","pub":"abef42538a17a55804b634aac9d211b92b5768c4cc1263342ca287323bb3d5c768080451d1b5d652e9f8646fbb35f57c","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"6de0ac2f4148f5afde308fd8e36615becb17a279243ad0dbd20676e949b49806\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"df3849d730b3aae0036a192e5747414df93a9b83119097127478315c19e6b31c\",\"params\":{\"iv\":\"21e387ce007f95021936fc25aa8fa6cb\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"3857d280119e58c630cda0dfe238541d186079feda5ae96fa8c1e454b9ded774\"}}},\"description\":\"\",\"pubkey\":\"abef42538a17a55804b634aac9d211b92b5768c4cc1263342ca287323bb3d5c768080451d1b5d652e9f8646fbb35f57c\",\"uuid\":\"32f5e92b-7fcd-5cd9-4ac3-39e617b4a7c7\",\"version\":4}"},{"priv":"6f3c66f6b767ef8179cdee041e4b8bbf275bb536e33405867c6a3feda42d8163","pub":"a8e3c2d3ac4e0e3c83380577ff7b7b5b2a98571e0d04ddebc0a6c472ce3bc5cc6a6733be728a0ee17da74b7691d2679d","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"524618de856dd742154cc8e1f68453455a5fe1829b319d0ace759ae7f758fd08\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"6f71897345072940ecbe978d87c4d45efcf86e07a1bab6c7b303ccf6a51695bc\",\"params\":{\"iv\":\"3a6465f5416bca11d4ce9cef824cfc5d\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"7bb43a29b1e2f65d8734d2f28e689cd210435a869b5ef2bbb8659f3238a1f5e5\"}}},\"description\":\"\",\"pubkey\":\"a8e3c2d3ac4e0e3c83380577ff7b7b5b2a98571e0d04ddebc0a6c472ce3bc5cc6a6733be728a0ee17da74b7691d2679d\",\"uuid\":\"7adfbf3d-fba7-17df-cb74-527d3767841c\",\"version\":4}"},{"priv":"1565241e323a6ea930a89f9a7439cda5dd2f0dde9e0e954f5275a7e282c95e78","pub":"98f620aadc4e58392b5b583fed96c452b54c39ba3a9fe8c277f625fae7e1317d034f732995fd88c1461463edd0f2b86d","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"960c1e1bec3978f7850893dca3ca9a042d81806d586944d35b4b5f86f8d082c0\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"b47dce50add5ae84415fe28756cfc5999031f807edb9f9f19c8ec0042e7d1575\",\"params\":{\"iv\":\"161996fe1192c7928db989fb939651ea\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"dec3d0f294e0ede68a3a0f516f0727212130845780281bb8ff8d1bb3faff3c54\"}}},\"description\":\"\",\"pubkey\":\"98f620aadc4e58392b5b583fed96c452b54c39ba3a9fe8c277f625fae7e1317d034f732995fd88c1461463edd0f2b86d\",\"uuid\":\"3fcd4ab8-520d-0718-a70e-cc69d3e4a3c4\",\"version\":4}"},{"priv":"060bf14fd937e1879965f0112e51f23e6d0e0c9754e54365ee7dc5469f20cff8","pub":"a7f5d408af436d71ec7acfe9a4592679649d326c00ac92c6f3332423be30c3601d232f265078f1f2a5d6d6cde08de7d7","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"4fc73ad1756fa1e8965d0b7bdf3cbb38a43bbcda404884d97cea1b1fbad7a790\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"123cae7faf167c1e1ac2004b59654621f6c8b14c77aeba739fd706b234bf5196\",\"params\":{\"iv\":\"64667435f67ad025c61cd8171d391c73\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"df070b4960ce79f8cb376fa611f34b7ace07d5b0c157f01be580a432733aa0f7\"}}},\"description\":\"\",\"pubkey\":\"a7f5d408af436d71ec7acfe9a4592679649d326c00ac92c6f3332423be30c3601d232f265078f1f2a5d6d6cde08de7d7\",\"uuid\":\"7718b72e-20e9-2a83-8ae1-507fe6f66231\",\"version\":4}"},{"priv":"47bdd693031adba4aea3f633ed2feca9481dcba764584cd2d4c1a6891c275007","pub":"a8be337b3d0e6be415dcb037b246831f9966aacef62b69d6b609e4ff8208bc536c6473bc9fe9e3bec9a8665c8caa05c5","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"950e0c1b997e9c3432820f43f7bc40fd8e73dbf139125a29a03637cf7f0e397d\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"d0bead4b38a600e840e2a00e4fbdf929579a975de32da873f920340afb619e8b\",\"params\":{\"iv\":\"4de2c2e53818b9ae7e19db7e41caa408\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"bf3c3c0203a21d3edc8f21342a519fa075d2d006fa71100760da0cba2b961c63\"}}},\"description\":\"\",\"pubkey\":\"a8be337b3d0e6be415dcb037b246831f9966aacef62b69d6b609e4ff8208bc536c6473bc9fe9e3bec9a8665c8caa05c5\",\"uuid\":\"615d4110-b1ed-d8a4-1005-c6ff2e26ba4e\",\"version\":4}"},{"priv":"667b5769b27672cacd415ad77b9ba3ba1d022c893c6e2f0ab8e24205bf6cf5d0","pub":"93bb1c86717fa7303f65cb8c45c9fcc8fecb88428b7cd1dd59967a132109c25ab5c97888e46c5d471ff911c573f45a34","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"447330a254f62124044127e51bfc571cd7468a2f1e37a94e539496a52ba5452d\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"f9ba0b9d0901a116d7be9e6731173a61a4a9752122bb1ed0cf16082787df1574\",\"params\":{\"iv\":\"9aee9260d6a2f938dbd483b710948ac0\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"4b10e4d411a2ffcece3070b279ae4750e8b0f1363d298ec15af1652dc47475f3\"}}},\"description\":\"\",\"pubkey\":\"93bb1c86717fa7303f65cb8c45c9fcc8fecb88428b7cd1dd59967a132109c25ab5c97888e46c5d471ff911c573f45a34\",\"uuid\":\"ac1dc5d0-1a6a-96ac-6d9c-4a610136ea20\",\"version\":4}"},{"priv":"466623e36f41384901c45b651c92acbfcce03b3f4cf7f897749d4bf83ea910c3","pub":"815042c33c1a43c1ee58a58ee074bc93a13c23a035dedee6879730220379d0c03ff4a3829240b6c34e56feb55cd322df","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"67403d281a73b6628d3ff1b28af47e8eeff1ae1388f87c0ac5b933126c4d7f47\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"9be37a4d03fe60915174d2861ab98d8f85ced2141563799519407ef511317301\",\"params\":{\"iv\":\"f6b3746ca20897cd8513fd7bc024b79f\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"35ecd8502faa254bbd8b4bc0573e17ea160e789eced488f68ba5063c959fdd76\"}}},\"description\":\"\",\"pubkey\":\"815042c33c1a43c1ee58a58ee074bc93a13c23a035dedee6879730220379d0c03ff4a3829240b6c34e56feb55cd322df\",\"uuid\":\"088d69dc-612f-9f38-9867-481ad75ea042\",\"version\":4}"},{"priv":"3b44858957059c54511242fdf54643d7893220c572606e53d24ab929fc384b34","pub":"8be11e9ead2e1bb5be7e2ec066ff83589558a5d9373666b3fc518a6a6639b3baecb87f8f34895f63e8d09d270d93ce04","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"cb9bb55f622b07da6ff55454aad3bfdf57dc40b082b72b08e19f55a5e128a1a6\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"683a751d6a250b084947c61a886c61b675e394f1141895d931180a02d276c568\",\"params\":{\"iv\":\"0b7bb220a7de77d899aeac89462d09b4\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"8684a41f504949ae3fe8da9e51be9a2c2b548bdd6fe3de5a34b643a89d3983e0\"}}},\"description\":\"\",\"pubkey\":\"8be11e9ead2e1bb5be7e2ec066ff83589558a5d9373666b3fc518a6a6639b3baecb87f8f34895f63e8d09d270d93ce04\",\"uuid\":\"4d34b1e0-e15b-eea1-8d11-479b166a4eed\",\"version\":4}"},{"priv":"1dc3883e9afe3e0fe97bfd6071d1963cbf9f445605008ad769464529c9fc02ef","pub":"8bf2630491d2a480ec243b00d65d76e69615e67d3df5d8c14ca7506edd8e896a9083e8ee9e4129af0f6d896a3225c08c","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"734a745de9c39991c490863ed3d66e11892a9579bfec5b89d07b7f73c099ea9b\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"0078a112df1b22fe2062e4b8672b559d7ee7b60f8fe3141dc4aa8748c26bca46\",\"params\":{\"iv\":\"e2a477bb50cf0571cdf53af978d2ef55\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"8073d5a4ba7a1c879b535f38b26ec77f69fd6a29b435407e75502f6b95877d3b\"}}},\"description\":\"\",\"pubkey\":\"8bf2630491d2a480ec243b00d65d76e69615e67d3df5d8c14ca7506edd8e896a9083e8ee9e4129af0f6d896a3225c08c\",\"uuid\":\"8c6e4861-2c57-dbe6-a53e-2a8b152771bb\",\"version\":4}"},{"priv":"0805ed1790e3dd052b756bdb5eac7a965be25a597d14bdc668aa7c6d6f1fab5c","pub":"914b56f41c411fbfca9dc9763f44daf253c103b162457d07954fd0af768b5e74692b4639c22455fb81d71f7ed6144514","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"51a7b3a8f1c9b3ad0f67b786174b012825959805aa5437ea686070e458da1327\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"1f3ab28ce91068f356a5ae2d5db396da9e4c3e7ef11b3a2198bb56a4ef589a1c\",\"params\":{\"iv\":\"6ef371a394dd772f075ba4cd7b47baa0\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"17de27330e825fe3e3f0d85751ef59dac024190883c815c58ffb514333f9e807\"}}},\"description\":\"\",\"pubkey\":\"914b56f41c411fbfca9dc9763f44daf253c103b162457d07954fd0af768b5e74692b4639c22455fb81d71f7ed6144514\",\"uuid\":\"49210cbf-a41d-2db1-43e2-4a563c33b43c\",\"version\":4}"},{"priv":"4ddd7598823c542c2feacfea3e716ce0e36bfaaf3c6c71580517cbae66257aaf","pub":"8794388915e86e4988363cdd4289ad19182209c873cbbbf5a80ff5c99f93acb839807787a77ad2b603f074405d7ed08b","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"660d6f9502d8a97e6fb3fda0fc34822a9ca2991b517f840d3a77b63bc649cb41\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"cfbcf7a707fc95440a0b7de7141450634f43f1acc77485e13d313d85d65182d6\",\"params\":{\"iv\":\"43bc01e253b7960e0e385d373b9f2562\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"136ea4934fca1089c5b747fbc958eee8407e0f4332b5318a4b9315501e58711a\"}}},\"description\":\"\",\"pubkey\":\"8794388915e86e4988363cdd4289ad19182209c873cbbbf5a80ff5c99f93acb839807787a77ad2b603f074405d7ed08b\",\"uuid\":\"e33b9045-bc80-a955-e681-bc2c3eaf9977\",\"version\":4}"},{"priv":"5470813f7deef638dc531188ca89e36976d536f680e89849cd9077fd096e20bc","pub":"a3862121db5914d7272b0b705e6e3c5336b79e316735661873566245207329c30f9a33d4fb5f5857fc6fd0a368186972","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"eaf99d7a93ef89d81607576c948148e5a39ba77eb8cbc8e8c724806162b5f40b\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"9850abc5108cbb52e1ece05d89682da4bb690d84dfd8b3cbaf96556686b2d79a\",\"params\":{\"iv\":\"e0b99cf3edb3f0d89f59e0c878681939\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"bfbf138f76957da25c4c98953552f23981c685a41f00e707519a904d45806628\"}}},\"description\":\"\",\"pubkey\":\"a3862121db5914d7272b0b705e6e3c5336b79e316735661873566245207329c30f9a33d4fb5f5857fc6fd0a368186972\",\"uuid\":\"63597a0f-4912-a270-1101-aa345ced30b0\",\"version\":4}"},{"priv":"4f7bca4e548132f40dd4586ae016897603b5871b6f4d01ca4d395e194f5a9f84","pub":"96ef954b331a534199f4f113d993a50ec7a781fc5aa2a181ea0bdbfd4c5c557abfebfcc02604d5aef52ba64afbe0ff18","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"77832a9389a408f3a5370e943745fd4b4cebabdc6a62a784d612566abee45c60\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"e9bf35d45300a8907fa9012bccf5227a596c557e444f2f3af9ecf19b299f40d7\",\"params\":{\"iv\":\"f2e9b41c23b7ff1589756932637ca0ce\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"03e7e2bb1a30b9a336ed35db9e608b7ad5fbb02626ac19ef2c45d90d033395b6\"}}},\"description\":\"\",\"pubkey\":\"96ef954b331a534199f4f113d993a50ec7a781fc5aa2a181ea0bdbfd4c5c557abfebfcc02604d5aef52ba64afbe0ff18\",\"uuid\":\"77e8312f-09b8-dbac-4095-f95c41bb547a\",\"version\":4}"},{"priv":"535d4992cc0d0de81761dd9b9e14578a55e6d259c3b512c2a3fe2d2853d6005f","pub":"96c8d3dd08724624017f178393d176b425dab9dfa1cc3f62c7669337446baa601e0aa261c00c76bde07ba9a1a3582c0a","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"38d1e63878b5792aa784bd8c198c52bfc64d2fe85727ade43787701478c13dfa\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"62c6b3e62c1cd44e34e785f28381d5e351a2d3809185670731b5f216b3ef00fd\",\"params\":{\"iv\":\"3d0cc89fa14f17356af15b5bed5ce741\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"5f8aa4e6b30f350508fa37b258dc9f14df3b091d102c1135ea26866f2a6bafbf\"}}},\"description\":\"\",\"pubkey\":\"96c8d3dd08724624017f178393d176b425dab9dfa1cc3f62c7669337446baa601e0aa261c00c76bde07ba9a1a3582c0a\",\"uuid\":\"cadca00b-b083-4146-e19c-1010feb2fbd1\",\"version\":4}"},{"priv":"15aea41481c6fdea498c16ada8c2c258a3f1673a1207daebce4e4593811fc639","pub":"92bd81b8e9099b9ca87a2033fdd84475752dc34a0fae0a8e50aabf4d3baff9cd45ed56508c837023944350f53dbc4ac7","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"616bf5ba800900a60937c370bbb5ba35fc0668abc486d1cecd5cb3d7fc0c9b03\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"a58609d59abce7a8941a9edc2df68e8481c0108cea93fcbc7337176583da9a21\",\"params\":{\"iv\":\"59c1cd1694cb06960e2b31bef99d0fc3\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"2f27c3790d9b8e763faf7d311ddc07a237e0611afee31e237b6a0ac47efc604a\"}}},\"description\":\"\",\"pubkey\":\"92bd81b8e9099b9ca87a2033fdd84475752dc34a0fae0a8e50aabf4d3baff9cd45ed56508c837023944350f53dbc4ac7\",\"uuid\":\"4bd286e5-c149-ccec-73f2-cf43eac41ed5\",\"version\":4}"},{"priv":"46f045b904466b25a95612a5343cf8185239a9ed2cd8954b033cad3f70b0ea9c","pub":"83802cd575a3cea7e3e38fc1a73d94a9e4fdb999b8494e7929309c009d79a23edb1ba091ac02588f130e0585fb106540","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"9baace3148ceb7cf5c3c5c8b4febafe279b8c8d3da8fb0afc8f5fde4fb6be956\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"da479d1a8fbead8f1684c8c2668de5025d9031dc8682f56126ddf92b269876b1\",\"params\":{\"iv\":\"b868d23303d485ac2b59937e21396924\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"3d717006060225ba55997141eaf3cc3f7237721fe2c1338eb63655f484c3d6fe\"}}},\"description\":\"\",\"pubkey\":\"83802cd575a3cea7e3e38fc1a73d94a9e4fdb999b8494e7929309c009d79a23edb1ba091ac02588f130e0585fb106540\",\"uuid\":\"c291fba6-1554-7a90-55c2-6a515b469b61\",\"version\":4}"},{"priv":"73158319c625231bc6a0ba2ba4c0df7a27f9230ed22b58a69de0d81fb0d404ad","pub":"b451eb0ff4990917aba6e3d80c34aee91ea1ce49053f38ae174cef107cb9acc595d0ca3fefcb804c9dd04510c630cabe","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"035cbe1917c6ce71a7780fc2b291ea80059aa8f22768169382ac7660a4204b4e\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"c42170a344149dd179102bf882b0bd969d76eb5d335034c720078ff2ca52bb5c\",\"params\":{\"iv\":\"23334a6b9357c0cc71c8140340527d00\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"40dd748e6a372e9b706788f15edfed48dee281bd03a66fdd1fd738baeda4badd\"}}},\"description\":\"\",\"pubkey\":\"b451eb0ff4990917aba6e3d80c34aee91ea1ce49053f38ae174cef107cb9acc595d0ca3fefcb804c9dd04510c630cabe\",\"uuid\":\"f7774261-c951-6a76-fed9-bb8b4ef537a2\",\"version\":4}"},{"priv":"1c9cb815d122bf7160af9bc86743e27f9caee9a52bb0fb5a552f03319207f303","pub":"a7f711233af57440e9ea700113fc4dbaef97e7da7741dd2e38ae668a7f2685d4585d54a9e6712ff1b87c69dbb181abf7","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"33aa8332f4ef6b3cd1f1f1822f306c5974da5c9e9b19c4417f788e1cfb1e275e\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"3c35808778e5684cd7d063d4cd1236621033bd1e0e654765eb04e626783a3a81\",\"params\":{\"iv\":\"2bf0448653ca50d1943a09abcd9b4fc6\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"3943b24daf7a2eb4dd8fd676e8cf07755f14e6379004aec403040da69ee5b781\"}}},\"description\":\"\",\"pubkey\":\"a7f711233af57440e9ea700113fc4dbaef97e7da7741dd2e38ae668a7f2685d4585d54a9e6712ff1b87c69dbb181abf7\",\"uuid\":\"18ec1938-2649-72a5-735c-7a581b3a65ad\",\"version\":4}"},{"priv":"5f2613ef4d3da2b3ee86567ce526a30d235a1d02199a8f17a285ab865e292d75","pub":"aca5e4979f281b5ab0ea0f549d6dcc34989607c335e94efedeffc7e73b393f42c7b11d76144a750f82600b21d10b6777","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"996c48e00b7acafec2c674773c584712a7263a306498510395d3b6ec69b8fe15\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"1ad40566c8d3450ab9b808cf8e09d04aa4fde9e865e57cba663cd6ee84516f1f\",\"params\":{\"iv\":\"e77189411e9be984a9aa7e75bb5cf100\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"387001cee7fbd8b73586d7826dffeda723864016691ac1b125242a3baed81450\"}}},\"description\":\"\",\"pubkey\":\"aca5e4979f281b5ab0ea0f549d6dcc34989607c335e94efedeffc7e73b393f42c7b11d76144a750f82600b21d10b6777\",\"uuid\":\"e88d915a-d6b1-e659-1968-d6c2b8869a5a\",\"version\":4}"},{"priv":"1562a8a05beafc2b20925aad11db32708ea3a6e89c2bdf18cac691caf88f4f40","pub":"984620db3658a19769475080998db9e7f5bcd4255a89a70b5ecf7db01226f213836d091a3b37eb96e4937966b094a291","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"6c9249caec586a011902a071b566f9ef76f46fd2ee005786e8af30cb5f767713\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"de673dfad6d67b33dc3b4bee25fce9122165c200c838198261f940c167f57721\",\"params\":{\"iv\":\"22d50b23beb91f882ad9e353f5cf04f9\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"196c614cdf0517c4c59b79e184d0912f2f8a64e04029245b71877fe156b87fbf\"}}},\"description\":\"\",\"pubkey\":\"984620db3658a19769475080998db9e7f5bcd4255a89a70b5ecf7db01226f213836d091a3b37eb96e4937966b094a291\",\"uuid\":\"0195c0d3-70ab-cb20-8b6f-12cf81a9f4de\",\"version\":4}"},{"priv":"5c66d8cb61df373d8798150bd5e933492b45afa4cb8f655ffbc25ccc4e1ca70a","pub":"8f1ef3639aea57fef705847e251b785bb608a848f42d9107c494cbc696be35642f6552fb83174ca2e73632568a5667f4","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"bb67d97a1a2c73b0f4b6a4f3682d2d75a2ce3a37cefe66456a192aa70aaac255\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"0bfd5140944c7cafa1de4f8ea596651582f5061bc3998af15613c8237a1d1f1c\",\"params\":{\"iv\":\"5afa02a8844589ae04ae7040051d53c8\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"abe4888e37e10c910bba97d324b520c1986a495b5dfc0d5e866fbcb8b5a26a50\"}}},\"description\":\"\",\"pubkey\":\"8f1ef3639aea57fef705847e251b785bb608a848f42d9107c494cbc696be35642f6552fb83174ca2e73632568a5667f4\",\"uuid\":\"26d20f06-06e5-915a-5c83-66c4942851e9\",\"version\":4}"},{"priv":"4d0aaa64c8692e125bb1437e2b28ca97ae8724e8415a767e3affd9c3e8c72dcb","pub":"8967da3c8071ba2bf632cd40ae08fbbf0a203c47c02af1948fc232a7a743c0c0cfbe51606b89f102f2f6de7f039fb155","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"511da7cc200bb906fc062771979a7a90eab17e4b0fa493ea59945801e92ad2e8\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"b7f4d4764f65b583523d5fd7cf12b785d4de7afb9abb665a3be9abcb0f1e74c8\",\"params\":{\"iv\":\"b7215a694cfc22c58d15299f64ea0730\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"23b5bfe00238b26a7edd8ab385e67896c00c28da48c7efe52959141993f47b52\"}}},\"description\":\"\",\"pubkey\":\"8967da3c8071ba2bf632cd40ae08fbbf0a203c47c02af1948fc232a7a743c0c0cfbe51606b89f102f2f6de7f039fb155\",\"uuid\":\"53da7477-5c06-a78b-122a-4cdc29963b03\",\"version\":4}"},{"priv":"4708d70df024dd5263bf45c5ade217924755190486625a2c222bd9903686cec7","pub":"8d58f7e2e58471b46d20a66a61f4cde3c78ab6c0505517c615e08d8ef5adf59b65fa2b01ea2395c84584a6f10d6cee2f","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"fdabc91f998e77aeaa2b797878dd0fb922c183e8bdf6d13f664037a2c9259e9a\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"a5ace5d094bd0d8f3260fe537501fd06e71abfbeb1749f7e14cd9059d9fb7682\",\"params\":{\"iv\":\"2130abf00f9f2c6d3157d40a96a08ad7\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"5d90609539f7ac4c3eb65015acc8be81ed42fafc404d2e9a646e5d389de4373e\"}}},\"description\":\"\",\"pubkey\":\"8d58f7e2e58471b46d20a66a61f4cde3c78ab6c0505517c615e08d8ef5adf59b65fa2b01ea2395c84584a6f10d6cee2f\",\"uuid\":\"47a81ee5-06d4-b22e-bfff-edee014b7365\",\"version\":4}"},{"priv":"289fd7f7e6d7ded306e85f88fd22216212faf047b2c94d5ac829966d58fe0cc9","pub":"8db9f236d3483af79703244c7034b5267a0546c3c840d4e91fdcdd466373d62d960553982225ca5f7666dd7375a29c19","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"864f2fb5f99f506324859b6d95cb80aed6a42f1d16af6d44d35b7a588d3ef1ff\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"784a7d00c3ee52d848639fc229418fcce7448317e1223f286f1a6c8e764e3ab8\",\"params\":{\"iv\":\"0b545ec170046af7aa6ffc1dba2d4eed\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"fa7614884ce3a245a1f4bb0cdf78dda10a2e8a99a6549a0edd8a84a14287bef8\"}}},\"description\":\"\",\"pubkey\":\"8db9f236d3483af79703244c7034b5267a0546c3c840d4e91fdcdd466373d62d960553982225ca5f7666dd7375a29c19\",\"uuid\":\"6743618e-496a-ba12-7f5a-cbe55fd39e59\",\"version\":4}"},{"priv":"3d55976d72d9f61b3d08620f1bdbd9b9d219cdd84d2fae829cbd7dfafdc91e8d","pub":"b7721412ae5a793f34ac8866698b221c67ef8272eba44d3030512ec3f7ed8ffcb620b58f17809690d5276423e849827f","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"757e2b7e165bcfa7ecd14790bde49a2ad1420ae252f854180cba46723d2a319e\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"129f52379cd0774efed8c9a3feaf0473236b8c1568f19ded8e26aa177bbaac35\",\"params\":{\"iv\":\"f4d29f89ac8eb31394073a9de1d85f65\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"7fc66c1f91ddf815a8516e4181f3d17f8567c12ba6cf6929617d3c8ad14cdb6e\"}}},\"description\":\"\",\"pubkey\":\"b7721412ae5a793f34ac8866698b221c67ef8272eba44d3030512ec3f7ed8ffcb620b58f17809690d5276423e849827f\",\"uuid\":\"929e69ec-51a1-41b0-3713-28918755fab5\",\"version\":4}"},{"priv":"2404bc074be939b1d0c3b0a86cc7497d930e5f7c1077cb3a9762840faad60eb3","pub":"99f6e5b80dc52407f0436d3474bd5da5ff23a19cb188b933af6312d9793cbfd54f9e72596c5d481a1ed8d705b81c1f0e","keystore":"{\"crypto\":{\"checksum\":{\"function\":\"sha256\",\"message\":\"b421a3b5c44924981fe9c6f6640101f8739d8137f7275af8f1d852b9d5a34c7c\",\"params\":{}},\"cipher\":{\"function\":\"aes-128-ctr\",\"message\":\"a5544048d204ee1f01463822522cfa2306c01294b3ed771509350180061036bd\",\"params\":{\"iv\":\"f0b327751434b3bf598fd56dd9ee9b6d\"}},\"kdf\":{\"function\":\"pbkdf2\",\"message\":\"\",\"params\":{\"c\":262144,\"dklen\":32,\"prf\":\"hmac-sha256\",\"salt\":\"63fdb89f6371a48f1c8512f5a651c47f1458fb673de0c5b7166c80d72c97f738\"}}},\"description\":\"\",\"pubkey\":\"99f6e5b80dc52407f0436d3474bd5da5ff23a19cb188b933af6312d9793cbfd54f9e72596c5d481a1ed8d705b81c1f0e\",\"uuid\":\"5b97a996-5149-2a51-05f8-83f881b6570c\",\"version\":4}"}] diff --git a/utils/keys/keys.go b/utils/keys/keys.go new file mode 100644 index 00000000..5b7c6997 --- /dev/null +++ b/utils/keys/keys.go @@ -0,0 +1,118 @@ +package keys + +import ( + "encoding/hex" + "encoding/json" + "fmt" + + _ "embed" + + "github.com/OffchainLabs/prysm/v6/crypto/bls" + "github.com/hashicorp/go-uuid" + keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4" +) + +var DefaultSecret = "secret" + +//go:embed fixtures/bls_keys.json +var pregeneratesBLSKeys []byte + +type Key struct { + Priv bls.SecretKey + Pub bls.PublicKey + Keystore []byte +} + +func NewKey(priv bls.SecretKey, secret string) (*Key, error) { + store, err := GenerateKeystore(priv, secret) + if err != nil { + return nil, err + } + + valJSON, err := json.Marshal(store) + if err != nil { + return nil, err + } + + key := &Key{ + Priv: priv, + Pub: priv.PublicKey(), + Keystore: []byte(valJSON), + } + return key, nil +} + +func (k *Key) MarshalJSON() ([]byte, error) { + type keyJSON struct { + Priv string `json:"priv"` + Pub string `json:"pub"` + Keystore string `json:"keystore"` + } + + return json.Marshal(&keyJSON{ + Priv: fmt.Sprintf("%x", k.Priv.Marshal()), + Pub: fmt.Sprintf("%x", k.Pub.Marshal()), + Keystore: string(k.Keystore), + }) +} + +func (k *Key) UnmarshalJSON(data []byte) error { + type keyJSON struct { + Priv string `json:"priv"` + Pub string `json:"pub"` + Keystore string `json:"keystore"` + } + + var kj keyJSON + if err := json.Unmarshal(data, &kj); err != nil { + return err + } + + privBytes, err := hex.DecodeString(kj.Priv) + if err != nil { + return err + } + if k.Priv, err = bls.SecretKeyFromBytes(privBytes); err != nil { + return err + } + + pubBytes, err := hex.DecodeString(kj.Pub) + if err != nil { + return err + } + if k.Pub, err = bls.PublicKeyFromBytes(pubBytes); err != nil { + return err + } + + k.Keystore = []byte(kj.Keystore) + return nil +} + +func GetPregeneratedBLSKeys() ([]*Key, error) { + var keys []*Key + if err := json.Unmarshal(pregeneratesBLSKeys, &keys); err != nil { + return nil, err + } + return keys, nil +} + +func GenerateKeystore(key bls.SecretKey, secret string) (map[string]interface{}, error) { + encryptor := keystorev4.New() + cryptoFields, err := encryptor.Encrypt(key.Marshal(), secret) + if err != nil { + return nil, err + } + + id, _ := uuid.GenerateUUID() + + pubKeyHex := "0x" + hex.EncodeToString(key.PublicKey().Marshal()) + item := map[string]interface{}{ + "crypto": cryptoFields, + "uuid": id, + "pubkey": pubKeyHex[2:], // without 0x in the json file + "version": 4, + "description": "", + } + + return item, nil +} diff --git a/utils/keys/keys_test.go b/utils/keys/keys_test.go new file mode 100644 index 00000000..a2ed12b6 --- /dev/null +++ b/utils/keys/keys_test.go @@ -0,0 +1,58 @@ +package keys + +import ( + "encoding/json" + "testing" + + "github.com/OffchainLabs/prysm/v6/crypto/bls" + "github.com/stretchr/testify/require" + keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4" +) + +func TestKeystoreEncoding(t *testing.T) { + blsKey, err := bls.RandKey() + require.NoError(t, err) + + key, err := NewKey(blsKey, DefaultSecret) + require.NoError(t, err) + + res, err := decodeKeystore(key, DefaultSecret) + require.NoError(t, err) + require.Equal(t, res, key.Priv.Marshal()) + + // Try to marshal/unmarhsal it and it should still decode properly + keyMarshal, err := key.MarshalJSON() + require.NoError(t, err) + + var key1 Key + require.NoError(t, key1.UnmarshalJSON(keyMarshal)) + + _, err = decodeKeystore(&key1, DefaultSecret) + require.NoError(t, err) +} + +func TestKeystoreBuiltin(t *testing.T) { + keys, err := GetPregeneratedBLSKeys() + require.NoError(t, err) + require.Len(t, keys, 100) + + for _, key := range keys { + res, err := decodeKeystore(key, DefaultSecret) + require.NoError(t, err) + require.Equal(t, res, key.Priv.Marshal()) + } +} + +func decodeKeystore(key *Key, secret string) ([]byte, error) { + var input map[string]interface{} + if err := json.Unmarshal(key.Keystore, &input); err != nil { + return nil, err + } + + encryptor := keystorev4.New() + decrypted, err := encryptor.Decrypt(input["crypto"].(map[string]interface{}), secret) + if err != nil { + return nil, err + } + return decrypted, nil +}