From 6837b9c463ac6eedfaa5dbf2605694319b4f33e8 Mon Sep 17 00:00:00 2001 From: dev Date: Tue, 6 Oct 2026 02:02:20 +0200 Subject: [PATCH] Stage 6a: the vectors of Go for the age writer tool/age_writer_go_vectors.go runs in an export of datekeys-go at c531e93 and makes crypto/rand read the keystream of the seeded source of the writer: ChaCha20 under SHA-256(seed), with a zero nonce. age.Encrypt, with the real X25519, scrypt and tlock recipients, then draws known values, and age_writer.json records every draw, its size and its order, with the files: one X25519 recipient over plaintexts of 0 bytes to 3 MiB across the chunk boundaries; two, three and sixteen, and one with bit 255 set, which age accepts; scrypt with work factors 1 to 16; and the tlock stanza of rounds of 1 to 11 digits. The generator checks each file against testkit.SealAge, with the first draw as the file key and the last as the nonce, checks each X25519 stanza against its ephemeral secret, and opens the file with Go. It also records the errors of age.Encrypt with the draws before them, those of the constructors, ParseX25519Recipient, CheckX25519Recipient, GenerateX25519Identity, crypto/rand.Int and the permute of capsule over the keystream, and the lengths of testkit and capsule. The output is the same on every run. age_writer.g.dart holds the same JSON for the tests compiled to JavaScript. Co-Authored-By: Claude Opus 5.5 --- test/vectors/age_writer.g.dart | 3202 ++++++++++++++++++++++++++++++++ test/vectors/age_writer.json | 3195 +++++++++++++++++++++++++++++++ tool/age_writer_go_vectors.go | 746 ++++++++ 3 files changed, 7143 insertions(+) create mode 100644 test/vectors/age_writer.g.dart create mode 100644 test/vectors/age_writer.json create mode 100644 tool/age_writer_go_vectors.go diff --git a/test/vectors/age_writer.g.dart b/test/vectors/age_writer.g.dart new file mode 100644 index 0000000..dddb6f4 --- /dev/null +++ b/test/vectors/age_writer.g.dart @@ -0,0 +1,3202 @@ +// Generated by tool/age_writer_go_vectors.go from age_writer.json, for the +// tests that also run compiled to JavaScript, where no file can be read. Do +// not edit. + +/// The text of test/vectors/age_writer.json. +const ageWriterJson = r''' +{ + "check": [ + { + "raw": "c57bcd8492d2eac97182e68c4cd535fb671ff7250e4300a9ecbb7b2345a48c60", + "recipient": "age1c4aumpyj6t4vjuvzu6xye4f4ldn3lae9pepsp20vhdajx3dy33squ7m9a8" + }, + { + "raw": "a83c2c90d3656327a9100202d4b90f7c3961f5a549f13fad322e55738a631c00", + "recipient": "age14q7zeyxnv43j02gsqgpdfwg00sukrad9f8cnltfj9e2h8znrrsqqn7hweq" + }, + { + "raw": "d55ff247813583aa0f6cf8b37394ecf048aceb7405642141b02e0c83769e035c", + "recipient": "age1640ly3upxkp65rmvlzeh898v7py2e6m5q4jzzsds9cxgxa57qdwqg59kpm" + }, + { + "raw": "342e6b6ea9d6ab816e31f6126f59df42b455ee1cadbe503eeece7101658efe7a", + "recipient": "age1xshxkm4f664czm337cfx7kwlg269tmsu4kl9q0hweecszevwleaqxx82t4" + }, + { + "raw": "9d534ee22b3fed75f52fed8404b1a53bfda3d90d67cc357a9775f1a47ae11b45", + "recipient": "age1n4f5ac3t8lkhtaf0akzqfvd980768kgdvlxr275hwhc6g7hprdzsl274v5" + }, + { + "raw": "0900000000000000000000000000000000000000000000000000000000000000", + "recipient": "age1pyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq8r66x" + }, + { + "raw": "0200000000000000000000000000000000000000000000000000000000000000", + "recipient": "age1qgqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqc54sr4" + }, + { + "raw": "ebffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f", + "recipient": "age1a0lllllllllllllllllllllllllllllllllllllllllllllllals8ppj25" + }, + { + "error": "agewrap: recipient age1ahlllllllllllllllllllllllllllllllllllllllllllllllalsn46ayy is not canonical: u is not below 2^255 - 19", + "raw": "edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f", + "recipient": "age1ahlllllllllllllllllllllllllllllllllllllllllllllllalsn46ayy" + }, + { + "error": "agewrap: recipient age1amlllllllllllllllllllllllllllllllllllllllllllllllalselrwrv is not canonical: u is not below 2^255 - 19", + "raw": "eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f", + "recipient": "age1amlllllllllllllllllllllllllllllllllllllllllllllllalselrwrv" + }, + { + "error": "agewrap: recipient age1lllllllllllllllllllllllllllllllllllllllllllllllllalsjzdrvv is not canonical: u is not below 2^255 - 19", + "raw": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f", + "recipient": "age1lllllllllllllllllllllllllllllllllllllllllllllllllalsjzdrvv" + }, + { + "error": "agewrap: recipient age1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq5cu47z is a point of low order: the shared secret would be zero", + "raw": "0000000000000000000000000000000000000000000000000000000000000000", + "recipient": "age1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq5cu47z" + }, + { + "error": "agewrap: recipient age1qyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj7vrya is a point of low order: the shared secret would be zero", + "raw": "0100000000000000000000000000000000000000000000000000000000000000", + "recipient": "age1qyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj7vrya" + }, + { + "error": "agewrap: recipient age1ur4h5lpmgxu2u9jku0a0r87ydtdqnr0tnsetrlvxvgz3vh6fhqqqzyt4v9 is a point of low order: the shared secret would be zero", + "raw": "e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b800", + "recipient": "age1ur4h5lpmgxu2u9jku0a0r87ydtdqnr0tnsetrlvxvgz3vh6fhqqqzyt4v9" + }, + { + "error": "agewrap: recipient age1t7wft09r2zxzfvwsk92eeql0tvzyghxytqwgapkcyf8dm5ylz9ts6wm9s8 is a point of low order: the shared secret would be zero", + "raw": "5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f1157", + "recipient": "age1t7wft09r2zxzfvwsk92eeql0tvzyghxytqwgapkcyf8dm5ylz9ts6wm9s8" + }, + { + "error": "agewrap: recipient age1anlllllllllllllllllllllllllllllllllllllllllllllllals4n2t7m is a point of low order: the shared secret would be zero", + "raw": "ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f", + "recipient": "age1anlllllllllllllllllllllllllllllllllllllllllllllllals4n2t7m" + }, + { + "error": "agewrap: recipient age1pyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzqqyr3apl is not canonical: bit 255 is set", + "raw": "0900000000000000000000000000000000000000000000000000000000000080", + "recipient": "age1pyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzqqyr3apl" + }, + { + "error": "agewrap: recipient age1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzqqsuwj9m is not canonical: bit 255 is set", + "raw": "0000000000000000000000000000000000000000000000000000000000000080", + "recipient": "age1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzqqsuwj9m" + }, + { + "error": "agewrap: recipient age1c4aumpyj6t4vjuvzu6xye4f4ldn3lae9pepsp20vhdajx3dy3nsqc6fzx7 is not canonical: bit 255 is set", + "raw": "c57bcd8492d2eac97182e68c4cd535fb671ff7250e4300a9ecbb7b2345a48ce0", + "recipient": "age1c4aumpyj6t4vjuvzu6xye4f4ldn3lae9pepsp20vhdajx3dy3nsqc6fzx7" + } + ], + "constructors": [ + { + "error": "passphrase can't be empty", + "name": "NewScryptRecipient of an empty passphrase" + }, + { + "name": "SetWorkFactor(0)", + "panic": "age: SetWorkFactor called with illegal value", + "work_factor": 0 + }, + { + "name": "SetWorkFactor(31)", + "panic": "age: SetWorkFactor called with illegal value", + "work_factor": 31 + }, + { + "name": "SetWorkFactor(-1)", + "panic": "age: SetWorkFactor called with illegal value", + "work_factor": -1 + }, + { + "error": "agewrap: round 0 outside the range of datekeys:quicknet:v1: ERR_DATEKEY_INVALID", + "name": "NewTimeRecipient(0)", + "round": 0 + }, + { + "error": "agewrap: round 83903165812 outside the range of datekeys:quicknet:v1: ERR_DATEKEY_INVALID", + "name": "NewTimeRecipient(83903165812)", + "round": 83903165812 + }, + { + "max_round": 83903165811, + "name": "the last round of Quicknet" + } + ], + "description": "age files that filippo.io/age v1.3.2 and agewrap write while crypto/rand reads the keystream of SeededRandomSource (ChaCha20 under SHA-256(seed), zero nonce), with each draw; the texts of the errors of the writer; and the lengths of tool/age_writer_go_vectors.go. The plaintext of n bytes has (31·i + 7) mod 256 as byte i. A case marked node false is left out compiled to JavaScript.", + "encrypt": [ + { + "draws": [ + { + "hex": "c3067f2599d14b821909c86175786a9d", + "n": 16 + }, + { + "hex": "34b1c4520c87f170ce0c846a30883f1f664302a81246753875aa54023f17b5ed", + "n": 32 + }, + { + "hex": "aff407f2f187287bf2f454931607ebf5", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139206454613766516d305079546a63526a574f4843572f725643512b69756c612b527543596262435a2f7241590a693252686d2f2b572b58434b4a63395361432f663136494476756372483875397750705167584230505a300a2d2d2d206f412f4a536f6a71477a6961792b6c4c4a43625437354f51544a4a3072484f39414e756d4f724c7a544b770aaff407f2f187287bf2f454931607ebf579e19e3fa1ba6d0aa45b0f95cb937480", + "file_length": 200, + "file_sha256": "662586ddbdc5217ace2090aba40c8e57763002a5324b87c4aa8739cf37e29888", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139206454613766516d305079546a63526a574f4843572f725643512b69756c612b527543596262435a2f7241590a693252686d2f2b572b58434b4a63395361432f663136494476756372483875397750705167584230505a300a2d2d2d206f412f4a536f6a71477a6961792b6c4c4a43625437354f51544a4a3072484f39414e756d4f724c7a544b770a", + "length": 0, + "name": "x25519, 0 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 0 bytes" + }, + { + "draws": [ + { + "hex": "556bb3913be97495c1e8a1c006ecb25b", + "n": 16 + }, + { + "hex": "4c7d297ff297caa9e85743ab007a28a68b5af0d654d31737c16785d6356ae8a4", + "n": 32 + }, + { + "hex": "f5241c0eec9645e2075d13963431fc6f", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2058323535313920364971304b4a5a36437867396e486c5a372f4d4747495a63366675486c545a78674f465646704c735758490a4b4b427a6774796950556a7759754342564a4b684d676576675262627248452f584356494f654c776a38730a2d2d2d20616945386f6f4d5352335041677479304e386b786159494d433148533851684a5753735036454b443665730af5241c0eec9645e2075d13963431fc6fd72806701e85f58f769297cef61e533148", + "file_length": 201, + "file_sha256": "2d4a56ce91ced04d077c77d74d9ee4f1ce28c52678f54a10c5894d0767827d78", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2058323535313920364971304b4a5a36437867396e486c5a372f4d4747495a63366675486c545a78674f465646704c735758490a4b4b427a6774796950556a7759754342564a4b684d676576675262627248452f584356494f654c776a38730a2d2d2d20616945386f6f4d5352335041677479304e386b786159494d433148533851684a5753735036454b443665730a", + "length": 1, + "name": "x25519, 1 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 1 bytes" + }, + { + "draws": [ + { + "hex": "994edb0dc389eec2a982b6c07e68da68", + "n": 16 + }, + { + "hex": "d696ab652490f646a5f6f4434c4f5d4688b861188a5435169849dbd15e6e4bbe", + "n": 32 + }, + { + "hex": "060f55189304285ea8641a1f6607137d", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e205832353531392048725665385079516f7534694e4d5067426f30394e346c6e417a437844612b7334716f6b514555454d41450a665772566e47344b7a3730393732646f6d696f69785331714b635a4a706e65433977622f63702f4678546b0a2d2d2d20754c4c796536566b2b7338542b484664473230532f782b616d4b2f4332416e793178736d45644a4f6e53510a060f55189304285ea8641a1f6607137d69fa832bd19c93f7a7eb4c6b69f37731b634", + "file_length": 202, + "file_sha256": "7fda64b5016b43e729d50845159f56e37fa471383a624ffac3c5dc8c78cab546", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e205832353531392048725665385079516f7534694e4d5067426f30394e346c6e417a437844612b7334716f6b514555454d41450a665772566e47344b7a3730393732646f6d696f69785331714b635a4a706e65433977622f63702f4678546b0a2d2d2d20754c4c796536566b2b7338542b484664473230532f782b616d4b2f4332416e793178736d45644a4f6e53510a", + "length": 2, + "name": "x25519, 2 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 2 bytes" + }, + { + "draws": [ + { + "hex": "49b269f5e5d5cc0d62064a135439c250", + "n": 16 + }, + { + "hex": "45563accaa3c6632b9f11a5ae15865d715ddea2d2b251921ac62950cdd06600d", + "n": 32 + }, + { + "hex": "bd56ff93a945d6292a7fd3242758f154", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139203271306c414c2b66586a55304264784573367778792f64636174646c78424c4e65516d504b4542515a54730a7856447437367a37333163422b464f70546b4a4e63705a414641396e6a616a3466767477476d622f6b61630a2d2d2d202b2b774e6b567545594c665061426b796c7267705a2f676154505a34576c6859715465766846486437466b0abd56ff93a945d6292a7fd3242758f154230ec32f857aa59a38b65ac8c507bd6231e38ab21924d31f19236a96336559", + "file_length": 215, + "file_sha256": "143ca09a27d4a1600786098889f43d8cf2004a2533e31abf97fc800e4bc61aeb", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139203271306c414c2b66586a55304264784573367778792f64636174646c78424c4e65516d504b4542515a54730a7856447437367a37333163422b464f70546b4a4e63705a414641396e6a616a3466767477476d622f6b61630a2d2d2d202b2b774e6b567545594c665061426b796c7267705a2f676154505a34576c6859715465766846486437466b0a", + "length": 15, + "name": "x25519, 15 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 15 bytes" + }, + { + "draws": [ + { + "hex": "f9076b11a6b2b5f59aa23561ed0b56c1", + "n": 16 + }, + { + "hex": "6f95581bc93b29f47a83c6424f68b5439204162a7ca8bdca85111c08b23802f6", + "n": 32 + }, + { + "hex": "f09ecda860abac95fe83a49e5a6fab80", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2058323535313920345265796e457a733637344a6b695265562f426c33776753747443657450426171646a31766731496648380a71664a43435a476c6c59525047374b50714e73545430417961313835506634436a48667a4f78626c6d46670a2d2d2d20794d32366849736851394e455662452b4a727836527658536e3552494435702b64334e39554e6f6c72396f0af09ecda860abac95fe83a49e5a6fab8030e0199144acf6bbb51a1bb02cdad2708e35a12a02f26bad9e2dd34ffe8e1c75", + "file_length": 216, + "file_sha256": "47803068927ead73b93468e1f37c696190da5652f158ea95a4e83e3bb94ba736", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2058323535313920345265796e457a733637344a6b695265562f426c33776753747443657450426171646a31766731496648380a71664a43435a476c6c59525047374b50714e73545430417961313835506634436a48667a4f78626c6d46670a2d2d2d20794d32366849736851394e455662452b4a727836527658536e3552494435702b64334e39554e6f6c72396f0a", + "length": 16, + "name": "x25519, 16 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 16 bytes" + }, + { + "draws": [ + { + "hex": "6196b9b3bf01b64c8af237cee2e80034", + "n": 16 + }, + { + "hex": "8f0491dfa5695d86969884f0c7b58c5245ac7583d905aef6ea073eda207a2ae6", + "n": 32 + }, + { + "hex": "097f2d9923f073b57126cd9aee6d9be5", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2058323535313920484c6e424d7151514d714d655430774161696b517046555469517a7a6131434e5a4f486a376a5130396a490a763331476b656d5363524d30552f396a347532522f725336586c61434e7368534a6a796a6737522b6e65490a2d2d2d206d356149507135472b5668762b312b5433676e47396c2b4d714d6e76553948693872733079426f4b7676550a097f2d9923f073b57126cd9aee6d9be514d9cee4cbc22a3a7f5e059967c4b9a543dc3d7bb5c92191a312ac5816468bef5e", + "file_length": 217, + "file_sha256": "751b36e770416b2e4a34438b5024e30ae014c5d5c6ffe38725eba0c80775ee07", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2058323535313920484c6e424d7151514d714d655430774161696b517046555469517a7a6131434e5a4f486a376a5130396a490a763331476b656d5363524d30552f396a347532522f725336586c61434e7368534a6a796a6737522b6e65490a2d2d2d206d356149507135472b5668762b312b5433676e47396c2b4d714d6e76553948693872733079426f4b7676550a", + "length": 17, + "name": "x25519, 17 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 17 bytes" + }, + { + "draws": [ + { + "hex": "57492ccf419974179bb8d440d78c909a", + "n": 16 + }, + { + "hex": "3f41ac08bda94349ecb9cd158353b48b8e1c23172a98383ff0dd6db303ac8afb", + "n": 32 + }, + { + "hex": "853ae7a3c8b50da99b6b80cfa05e3f5f", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2058323535313920745746745679676379422b3550502f2f54453350763645376d31653057496f634b317573493064556d48670a6371626e5152485a794b30473357494a594737763751464267357a5433715730576c4f70587470363059380a2d2d2d20343863524f4c7a36595356446656353132486f69713568326b5a6c424c386b51486334635a5076597433410a853ae7a3c8b50da99b6b80cfa05e3f5f44d717ed03f4c77deede9daf1da9a90677655e87f63a944edab2074ae5c6712c18f7458d579f6aabc02ad136d611bf9cc760a23c6d979945d76dc075d2b1066e4ccb57259aaa375cee611fa39a010d18269f25f56910c1bb5b6de90e8796f72055fcb293adaefd104a45bf3ed791784e9f3a6106", + "file_length": 300, + "file_sha256": "2c4996a3b059a7a36875e8edf5a504713ea6d6c03892a083c8ae990553cae71c", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2058323535313920745746745679676379422b3550502f2f54453350763645376d31653057496f634b317573493064556d48670a6371626e5152485a794b30473357494a594737763751464267357a5433715730576c4f70587470363059380a2d2d2d20343863524f4c7a36595356446656353132486f69713568326b5a6c424c386b51486334635a5076597433410a", + "length": 100, + "name": "x25519, 100 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 100 bytes" + }, + { + "draws": [ + { + "hex": "56a51c14e06f90fca0f3183d8453bca1", + "n": 16 + }, + { + "hex": "10fd5edf6d9331f9f4eba61b91c5a0d59ef5c91147d01c0e88b7eb2896672828", + "n": 32 + }, + { + "hex": "777f61ec13318fb52a318e64419d6e46", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e205832353531392045306c556a6c2f397461476b6d41596e657559654c5466374a664749426b7441527759496c304d4367486b0a4962477041596d387353526572544f5a4234726c5855564c446b50775a3475385463395a427664384833450a2d2d2d204d48466574452b6b354c42433277664d4a4a795847394e35342f2b6143717748787a6d56384e532f616c730a777f61ec13318fb52a318e64419d6e466eaaead14bc204136e72562c0f9f23d9f18d5af552b4cfd38dc02b473734423a2c57fc936f6004f397dc8128ee37d9b727ce493922d6e88b7fc45b2d1bde83083d40e6ee1f8fc48ab2edfa6942a33535125c917bc67ff323bf684f90833a86e2bb7c94c76bf5ed4578e3addb0170ee78e9cf2912818829", + "file_length": 303, + "file_sha256": "02404ccde625babc48a659f273d3bd06c31e94d8c2616306a1336199d779d789", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e205832353531392045306c556a6c2f397461476b6d41596e657559654c5466374a664749426b7441527759496c304d4367486b0a4962477041596d387353526572544f5a4234726c5855564c446b50775a3475385463395a427664384833450a2d2d2d204d48466574452b6b354c42433277664d4a4a795847394e35342f2b6143717748787a6d56384e532f616c730a", + "length": 103, + "name": "x25519, 103 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 103 bytes" + }, + { + "draws": [ + { + "hex": "9327fee9cafc0355db415c3e987a9b5a", + "n": 16 + }, + { + "hex": "38a79a4c9823244eafff45637bcf308e2df6c61c79bc47dfbd1ce7ecd0afaabb", + "n": 32 + }, + { + "hex": "e22a504dfdafaa34d1ac3e5696860c92", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e205832353531392059576c65576f592f3454704c2b51755535323063367a3858684741475a583968506e36613667684a4942340a79784c616c6d643943455168546b3059425244527035616a4a2b703270536c5261326c5a49345a315845630a2d2d2d206a41637751384444486e6241756c536f584d345639506e427842454c4657505356356c4159614d6a7073550ae22a504dfdafaa34d1ac3e5696860c928490d351d643fdb1bc320b16a1ef8ca65801572a455f2f64cd2530f717d4b471b07f77a3fb24f76164053e125cb4b6089558951a0ab48bc8490c1ca8cd3177cda3ffedc3381e6f63c3044a4c8c8888d95682937931042165bd4fdd3f88868da33c43deafdf7e323cfaa6ae1da19f11b0829e9f3c8a9f4965d87f47691145cd4aa04f9e4d6669df49102b581fb8f86d866e07dccc8053f946be9aafee990a798d765679b97fbcba8e49ca385e9e3775cea1620f2cf3940ef71ba5fcc9f2ed54513f5c401d013f9124b6e1abe55a02adb912722b60e9ad14466a37ccf57c425c7389f55cbda26e1443a47efdc8ce87fcbc7976749fdf5eb267ed3038f1e8f3298f13826c976fc91d2db877fa65e1b5091932a37603681429a530c3c5294a12c28615ee9be633c2856ae996aa8c70685b0c28be7b6c7c7f8db0d1118bd3a298b89003e0ccf9d12d3722464b35b9b010d308c006542754b59c88f2593a832dc9e13f8f50a855783d1c1f009dca96ff10915ce70de7dae15b0e20cd950870ba6446bdc9e123801f87771f98b69e1a6ebd23dd7e5f99d8c76709900d649dc68644b9cb9ac2a0936f57dca6f2cc962de773fa708de759ebd0d3cf5215786e0aceca2a602131605a5dee12a269f52098a6f67a4dd8a1ef6becb9b665f78612b330bb0ca37513838303323e806175769163a1133a63aff561e6435da8cfdb1e294a400a796bf2f197d78247fd31f92f87cd901f180a1ad84ad1ce5c09389539a99c3a4c057addfcc9c8f5d3404fa17412907c5582800af8b6ebc79f19fd8304bde2a83b5faf00554cc6849a4b93a027a51b7f5df15730defd4e0912c7dbfd69d52ef2416b80ab144849df4a80cf1d8faca5535620c4c39b2a72f72958debd2511fc6a3d71e63d10ceef1467d6fef32952abf9d05aa02ae8ac98e8d03e186284a24ada8380db04d67b8670d8a9e9aee5636c6277ae55dfa7fd5858513832139eb100dad3aed3ca428bf83144e7ebc7b75ce8af1caa017acefbced3438dde0eac9408c3e274246bbdcb0be98dc4f42c9b9c35e6d438842c3605ef874e2c32903756bcfca1f9a3c5966528cb5b6b065662c96f084d2c32c725d0f73bea2750e396c82f94dc78f95c3adaee8aa516e369b346ccf3b8351fdbb1c787d894ac20aa12dafbbf1e9856265856b6780bebc19e3ed7322463cce1bb41124be247189d571f72d078f78c1ff793243061e48d47964e045e4d98b4173d6096da34afecb39191bac80952695b465f041d5b812ad6db0d5171a4168bdfd13d31f4819daf7994df7ed8397e6fe4c3ecdc7be1841ee52af3f86707dc93451ae6b51ca03d06122bf04a217cebcf47d89f519e65f1f8042efaa1d5b3ff92036d54d15981e009f4fa0a92d3d873806452e88e60ffdd78fde8c40ea4dd16c6a080ed82ee435006", + "file_length": 1200, + "file_sha256": "4021b87a57800be39ea58f3833747ac40c260f3a4e131780e7b3ff9df0d6a93f", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e205832353531392059576c65576f592f3454704c2b51755535323063367a3858684741475a583968506e36613667684a4942340a79784c616c6d643943455168546b3059425244527035616a4a2b703270536c5261326c5a49345a315845630a2d2d2d206a41637751384444486e6241756c536f584d345639506e427842454c4657505356356c4159614d6a7073550a", + "length": 1000, + "name": "x25519, 1000 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 1000 bytes" + }, + { + "draws": [ + { + "hex": "b0d6c4df579466f1ee355469df0ad603", + "n": 16 + }, + { + "hex": "b6b578da295237947c54c698ef83012bd5434b0b5c92957ef47b144fa70c31a6", + "n": 32 + }, + { + "hex": "9b47bb736fb4e2db860d9c8fb0c5761c", + "n": 16 + } + ], + "file_length": 65735, + "file_sha256": "5cd1b64837384f8ef7518fbd57e3d87c35881487a24980458631be16820428b0", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e205832353531392071566c66454d494c627867382b6e4d425638784a57354834682b68782f51556e4d3079434b3751516c46770a727044466e666141367153517666353267354d30646258705a72547966662b53763853486c594a376c71630a2d2d2d204e317457753932386f7834797667316469594e66594c553972436b44434932363455625253554e68336f340a", + "length": 65535, + "name": "x25519, 65535 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 65535 bytes" + }, + { + "draws": [ + { + "hex": "85e2ce1f803fa4125958d4beec225931", + "n": 16 + }, + { + "hex": "406988233cbc758e4c5121d1e5218eb869c5eb7ea81eb7864d582ab20bc87c9e", + "n": 32 + }, + { + "hex": "2b0447d28c1f405b6505b81d40083081", + "n": 16 + } + ], + "file_length": 65736, + "file_sha256": "8bdf837a97f1e24b679ee2a9ca4ed6009c8cbcd692e6b721d8ceb278826a54c5", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e205832353531392070723645644b594874476137784a6f67505030434e7a3564666b2b526c44526d4e5451564174376561314d0a4731466a306f63436a33575572442f744a61424e59385a58444963517751355766353956386f6648654b550a2d2d2d2076425152356e775770652f6d69487a7a663047362b4476455972456672383678484b7333666237696c4b6f0a", + "length": 65536, + "name": "x25519, 65536 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 65536 bytes" + }, + { + "draws": [ + { + "hex": "5dff4e486a0b4a9684e23318bd739286", + "n": 16 + }, + { + "hex": "1547c3f1924e3f8805c1fb1d28b5bd7ac9c44b76568d315530b4ded59747b026", + "n": 32 + }, + { + "hex": "332ac61baaae132687c06799bb9abfe0", + "n": 16 + } + ], + "file_length": 65753, + "file_sha256": "f180f1dc52726230845098f0289ff372bc8bee15ae0023190fc31f646143f367", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2058323535313920306b48486c694d465853646d496e774f4a4a3371722b4c386c4e70486a5961657846735532416f41306a730a4b5558715333766f32584f6a63613678505a636f6d4a62783263656f49777338774d4e6368422f65444b510a2d2d2d204f426e6f354935553849716d336f34594e4e332f39596f3462647a754e6f642f57395a5362746f7344344d0a", + "length": 65537, + "name": "x25519, 65537 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 65537 bytes" + }, + { + "draws": [ + { + "hex": "f63eaa7382ba80f0bd148c54402fb78a", + "n": 16 + }, + { + "hex": "a058d9e5845ae6365251c422c61741662fea477bd9ad34ed4580f071280cbe0c", + "n": 32 + }, + { + "hex": "da179c826d97a75141aa831a6ade2991", + "n": 16 + } + ], + "file_length": 131287, + "file_sha256": "025a44006acf69dff6d7d027f76fd9c99641d1463e45b1d0225c346bc6bbed8b", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139204a7448677652487352674b616c3463313332375a2b4b6558345a444d58343649364a336d6b3762536a41380a53465452774b3971413031614a4935735a6f4344514a436f56492f47763837554f496471582f6c5a556f550a2d2d2d204d776c6d6e387973466679667246384a67453441626d726c4d49574742482b34544d4c6c6b524a744d33300a", + "length": 131071, + "name": "x25519, 131071 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 131071 bytes" + }, + { + "draws": [ + { + "hex": "e46f1b0f5b230a1072f4fbebfbcbb449", + "n": 16 + }, + { + "hex": "10ab9e8379811992ce7cb1f1aa1723498224bc59974b36b2faa466c3a85ca410", + "n": 32 + }, + { + "hex": "7605ce267b3bc29efc3a711119d8f4db", + "n": 16 + } + ], + "file_length": 131288, + "file_sha256": "e8bed55a3482f1691c7bd198e0b0287a1336606d30697cd729877e16022e8e51", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2058323535313920517831633562774c4e313465385a38684332513753667451313631624b5469337077436533506b774830380a75392f574d7870625059334250324e752b79386a3043784f6d706c49537a61556e5467506448624f4376300a2d2d2d20676a41357a68746465596568674f356f61586b49697a71442f34555845765269586d6a676a375a494653380a", + "length": 131072, + "name": "x25519, 131072 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 131072 bytes" + }, + { + "draws": [ + { + "hex": "406dc40606536090370fa7ff0b019445", + "n": 16 + }, + { + "hex": "f8fd80b15c916fa3062e0f344c589cd7c519fe63f68fdd7f41aeee73dd17d3f5", + "n": 32 + }, + { + "hex": "a58d7cb8e4034f08cb9f04a5b399e4ba", + "n": 16 + } + ], + "file_length": 131305, + "file_sha256": "d76f3bb64e4853a5cb836d9297828fdf2cdc63f69ee3a889b6d4fa981cc0ecef", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2058323535313920434b487643773334766535503943774d4b7248696834643837462f72454245334a6859736b4a73383454630a496a355a747a58536a6b47786f56486b365173395139312b4f2b416d4d7972326d6e676935486a316930340a2d2d2d206e486d633244624c587a43616b615a72487374373565434f65344555575954674d6659456772576e566e340a", + "length": 131073, + "name": "x25519, 131073 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 131073 bytes" + }, + { + "draws": [ + { + "hex": "873dfb51fcdc75b83cbf1fee2b194f06", + "n": 16 + }, + { + "hex": "8da94580923a3308294739f48697fa05041981cf194723456e51664e3695bd28", + "n": 32 + }, + { + "hex": "0b9a8976122fd646e0d5fee05e46fbb0", + "n": 16 + } + ], + "file_length": 196840, + "file_sha256": "4c9c2ab563d0298636968f3740e2731629f0042b76751bbfa00fca1a30bad758", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139202f32736b62624e355534326455736b4d754271346c75626e39476e2b484c6e33396a3067502f6e4e7947450a44496d4f33394b2b4f73492f7664726d495056484c6842746469713152456c6c49326a32726432634a35670a2d2d2d2064677653416e646f63353745777a724c426c7339622b5334335a52384248676c67383268755262677776490a", + "length": 196608, + "name": "x25519, 196608 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 196608 bytes" + }, + { + "draws": [ + { + "hex": "db772c496796beec733817a03ce83eb5", + "n": 16 + }, + { + "hex": "79fd0d067a10f01efa6b0a76e97e0984f50701836da80822c7dc44eb812f0a5a", + "n": 32 + }, + { + "hex": "c1e5c5e03a88c288b047bad0dc644f00", + "n": 16 + } + ], + "file_length": 200248, + "file_sha256": "0621645c4927e5a61e63ee245b7506a7df8f52ab183eba0242acbe91452e4a7e", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139207976564561354e447554626a554b3841653857376f5257786f796f5066536633494b315175303259786b410a775249704b4956383956315665523873416e316a6d5655774d77706c4a6c514a637a7352665a44706237550a2d2d2d204e36746e37477747752f6471722f6d6669774a4745516e7873474b4668512f6e50643476306636514459450a", + "length": 200000, + "name": "x25519, 200000 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 200000 bytes" + }, + { + "draws": [ + { + "hex": "c7b90b8ed102f577ea6f3cf064680bba", + "n": 16 + }, + { + "hex": "1433555a1ec342931362e78c145fe8840f20b9697747965be4b87e711a8d4ac1", + "n": 32 + }, + { + "hex": "952501188c441f8b51b4da32ee388040", + "n": 16 + } + ], + "file_length": 2097848, + "file_sha256": "897631608ed017f673dba0b6bdaac1ace22df2dd60236cc5a54e742a2a9a2646", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139207273304b50713741394858304e716e664c4e333564726d6b41474c2b755736366b5a3477646438503544450a483071532b4c626f58465552736666684a4853566657465a63317471346f5a534678765a4c6947736468550a2d2d2d20527668666e314c465a4b5832307a704a39387134306857334b645034354d72424a6e4f36312f44726356670a", + "length": 2097152, + "name": "x25519, 2097152 bytes", + "node": false, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 2097152 bytes" + }, + { + "draws": [ + { + "hex": "79392dff102da8b862a433f05370b12c", + "n": 16 + }, + { + "hex": "3aabdac968125016a9de2bad765b7ea5a98d3a7a3319e0761e0e2cace3ca05c5", + "n": 32 + }, + { + "hex": "abe9875022cc4cfb8313ae172a19cb59", + "n": 16 + } + ], + "file_length": 3146699, + "file_sha256": "c524d5b23f798b110d98776093cb6fb088e0951bf2aa0382618e6ea9da791de1", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139204b712f375572446865586a364a4753695a447052622b52464b5464744458414d34635373624936486d51450a6a35543368617a4b4a30456475307231474a74346d4a7766486e41522f556c52444c4663646f7a546551770a2d2d2d204d524234634375583472735852374f4479576531394456464d5536557947384a65715337686166647674490a", + "length": 3145731, + "name": "x25519, 3145731 bytes", + "node": false, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 3145731 bytes" + }, + { + "draws": [ + { + "hex": "5ddaa385be4aab46d4922f23f4aa5318", + "n": 16 + }, + { + "hex": "fe4b572741eff037aa57010090a017495e67dea65e771f0fe92145f3442c230c", + "n": 32 + }, + { + "hex": "bd8945767a2df731c63314aebfc60fe7f903d707866ab9446ff5c7c781878c07", + "n": 32 + }, + { + "hex": "2552e05ed58e01a4bf3814ae0061567a", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e205832353531392077576b4c5942592f70786639424949762b615872596c68454c387561444f4b63305a53346b574b37756b6f0a73747862534f394a616a53412b4d58377176543455682f5445784e6743504a6a4a4543342f71556b716d4d0a2d3e2058323535313920364c5974375977414170727034306e795759737748527464574f6233766a713050474a63346b55466d6c450a6d2b3862393532305a4e62674e617048664a4679344b66514f585051342f5a32733161466935487057396b0a2d2d2d20546c2b6e6c6b34514f4f2f6b5343594546733853376d744541454267396b70514c766c6569456e6c4841300a2552e05ed58e01a4bf3814ae0061567a19e1b9dd9aec268cb879c28f6e38d9de08fcd05b956b0fe0dd73709240c48b821c0b81f3fb97c4a1e73a35710423b321ee818b7a7e187cedaaf2fd2a75d2eb1cdbdf", + "file_length": 348, + "file_sha256": "ff0d744917395083206e77aa3f2ca63e8c2fd9ad0a1576499e09cce520f658a5", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e205832353531392077576b4c5942592f70786639424949762b615872596c68454c387561444f4b63305a53346b574b37756b6f0a73747862534f394a616a53412b4d58377176543455682f5445784e6743504a6a4a4543342f71556b716d4d0a2d3e2058323535313920364c5974375977414170727034306e795759737748527464574f6233766a713050474a63346b55466d6c450a6d2b3862393532305a4e62674e617048664a4679344b66514f585051342f5a32733161466935487057396b0a2d2d2d20546c2b6e6c6b34514f4f2f6b5343594546733853376d744541454267396b70514c766c6569456e6c4841300a", + "length": 50, + "name": "x25519, two recipients", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-187CGRV0XU3M7FSZ0DHYRCACTVSTM2KTT6KXN4XV55P8FV8HZRAMSZNUX25", + "x25519": "age1whgmasnral5u50rlq9a4j0pxv5fk77uxk39fyug0dn8jvakjmddsjaqkt8" + }, + { + "identity": "AGE-SECRET-KEY-1ZH46PM7AQKD5KV3D8CSL0T2J0YJH9LQQ8KGKJC79WXRTXXZZLXHQYQRYCZ", + "x25519": "age1tfzv84s0dkv89k4tymkcc0r5ncukvhxucnyd6g2t9jhx9hl58ppqyvvlwj" + } + ], + "seed": "age writer x25519, two recipients" + }, + { + "draws": [ + { + "hex": "91b7b6904de01f801e502f75bea7b110", + "n": 16 + }, + { + "hex": "9fced785c0e9f3ab357a47854abb70fd70469ab0e41ac03e77416d17e00df035", + "n": 32 + }, + { + "hex": "32b062326c28ec57152d9c16412f1c622ad3f2305112a6c61f31abf5e87dcd9c", + "n": 32 + }, + { + "hex": "c538a6b3475ae0cd051a3befd0e5a99c033e467ad0d1228511fd044b9db57c7f", + "n": 32 + }, + { + "hex": "fd495e6e48df80b9b80c682a2b9d70b4", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139203546674b746348502f7a75615a475935626454346238457a64453162596b6c554a4379494853392f797a630a416430495a6f594c2b67726c4f57646974717335696f796f63494c5770652f44703951744e30704b4839510a2d3e205832353531392074726968577a7830734575756f4d31487a764d75534f4138462f46614662524841794d2f717453703955550a624c742f5a2b4d764c366e6551554a3456656d513548793941356e7334365a414a6f74516666552f637a380a2d3e205832353531392033316678725a4d4a352b374e5777667a7177786e716a436736514162633348685259795a464e31746b6c590a6e7667465157584c32566e4a4d5333487a7878715a5a7333335a4a704837624a78786a3770344a703179450a2d2d2d20534657704d3449515955437a50666e59486f6971583634756e55444d306e58506b6b50315445764f3051550afd495e6e48df80b9b80c682a2b9d70b4d9942d745c8c7292d8d0e9d51a00671188c717516ebdf4350a379161e8e506420eb9541e775d16a9edad9eb85679ad93d6f49b9956c83fec305d22606c57b05fd1d98222fc8b3ee82c6d2c4c0d81675f2832be0a9de0c99180282ba710e1b3941932d0e8768ed5e7e848681cf43097615f79ea54b4e231827d726802bcd2a41450655d4922ba7310c1ebdfebcc624503ee072ee86686e6477058fdb245ccd45a75418d4fe43b6d9cc3576beec85c53adbfd2fa8919587bf7f6856f317ee7a02ee07df9bd92d5a8ded6fe58b63fb271e2acb98b5595382f9e796132ca8f73ccdb80003530999f94fac552561f0d7ec85d0a3a1f887d0a637feaf44f00316c3d06a4a85215b7186743de56f0caa3c76f99bbbd767ac6a52e4c64f968a471a4c450aa4ee82cf83a14d1ee12e1b053ef9a73015082ce7f591773fa6cc2fc8774f5f6fbc91294325d2c83cbd1e38f732b19d52044c5debba6e8c3ea26a77787907adf473dcc699f08bd5a1108b587c9436403fa996df7579b79aaea8c4e0296bc041c6ec2fbe1c8ed8bc4fd035d7a3591c0a4ce517a01a642a0613cd574b3fd583a89b57832f300479c6aaee03e859259a53572dadbe60a85ceb0372614cc4d25fae0e779400ebe4016f0a7cca82f1c8d626451f9d6f64c3e0e1fb85c62e11d43a7d03f58cbac6fec3ddc3c82968e44a34eb4ab56b2236597765d1aa7e5af4c2a4f5cdb0a1c814426e0892d8334d0fd455602c89e48ee4fa6b92a707862413c73768c0494f42e576a2a9da9a4131d23a32c0b4e8d18d22c7e809aaa54febb932e2a661640472ceb707503b34dcafe54558f61d58eecb8ac371d5054d56c8dbfd300f4f8764758add0034c24a2b6906cae32e5bf113f352c8e5fa335808036109f238bf799e5fc61e92fdd2644c1ff4653b985657ed9e9ac2bff70822bfdac3a8b1329a8c8bc89b8d4bd6c0f4c662af4d5a90e0d8f234462a43d82be28f1f5bc5db62b1df12a399cd01d619046a20924b2f7f749c229e9ecccab6a9d553e9ddf6d2fb521c92fff8a2d6b036a9a60366d8e1b9ac438a8cd34591f8a7a0c8627fa0958b2a27ab78c7cb2a9c280a47b5ddfeb279c2ec359f855dba0cd2d509db48aa5a798c62ee1fee1997db433e555295f0ae0b944a602efde1d443640963ce5bf31b8af605b159d570676c6443dcaa9d42be3e5792e196fb5e7e5e868d78c77ccd131e5a7cfe1169476875738e3870e0520b4707312c61e5c314e9d45f393945b7d4ff0a4213b1eb5023f7244eefa0199bec575a6db5816064aea1d419b386b7c0ddcdfdd676915054a6e2eac7c1ff8e08cc7fa38dfcd6cb62261054bbd09d9511b6457eb2b2b33a40fa22dda8497e945ff1c7f8b92fda5aec69e4d738c30f7c8119e1795b636f1438eac9077c147851aa0b80eca55d3b4bd1c38cc", + "file_length": 1396, + "file_sha256": "9d0daacef9bae67591890b3a83008a0c81efb29a2ed5f1c27859d9e69dad972b", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139203546674b746348502f7a75615a475935626454346238457a64453162596b6c554a4379494853392f797a630a416430495a6f594c2b67726c4f57646974717335696f796f63494c5770652f44703951744e30704b4839510a2d3e205832353531392074726968577a7830734575756f4d31487a764d75534f4138462f46614662524841794d2f717453703955550a624c742f5a2b4d764c366e6551554a3456656d513548793941356e7334365a414a6f74516666552f637a380a2d3e205832353531392033316678725a4d4a352b374e5777667a7177786e716a436736514162633348685259795a464e31746b6c590a6e7667465157584c32566e4a4d5333487a7878715a5a7333335a4a704837624a78786a3770344a703179450a2d2d2d20534657704d3449515955437a50666e59486f6971583634756e55444d306e58506b6b50315445764f3051550a", + "length": 1000, + "name": "x25519, three recipients", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1DF96JUP95EQCYXMM3EAYLF5G6XR9QJ9WCUSV6JWCM6HV8PAWMYNQXG9S7L", + "x25519": "age1dkdxscty0zjg0xk32pn52j0qrmrejcmta20ljj0ye959rst4m3dq7u5w53" + }, + { + "identity": "AGE-SECRET-KEY-17ZRWHT5HKE8JCYKDFZ2T2L3V48SDEX3ATHZU43QLYUHFZ2MTEG7S0Z7H9J", + "x25519": "age1kxyxnqr5vext6myay6p2hs0d6ggh09kd3vysn9pfptnq58newpaqsaqccd" + }, + { + "identity": "AGE-SECRET-KEY-1N2LLYZ2SRW4E63WFLJYL5C08ZJ4TAKPYY958VMJY430XNX2CV0FSPE6EFM", + "x25519": "age1khepf4vac0mv0r5xwqreldug5l38nn6zsacerrwv6td5kvgcg5wslpt2an" + } + ], + "seed": "age writer x25519, three recipients" + }, + { + "draws": [ + { + "hex": "fbe6b750bbed302df0d7d6f165435f60", + "n": 16 + }, + { + "hex": "7c0e54ce64ca4152dc96fb4104df242da0f3ab57e8afc91bedd860236597c26f", + "n": 32 + }, + { + "hex": "cad0db6f882f4f0d6e3aa7cc4fa9b3361d60434db6f1e088d7fb9da8f2a0daee", + "n": 32 + }, + { + "hex": "8c5c658dfaefc3a44a5616df4d7240d467f70822f5a1cf008d9b880be89e1790", + "n": 32 + }, + { + "hex": "8dce5bee5dce4260f3d65cfb47d26c0f740078b0797d25a083446edd51466562", + "n": 32 + }, + { + "hex": "43f68b26b1c4c35deedcfd3a3f52babd92099e2e711ca888614050e898fff9d8", + "n": 32 + }, + { + "hex": "7d3b223868b0f7303c42e686502ec624d11ec6fa290b5a23308c74f7473b3b5e", + "n": 32 + }, + { + "hex": "dd69613ea2bbf65773ea5dc5d474fc2d6e3a2f950ccacc315d5e0a8d290495ed", + "n": 32 + }, + { + "hex": "74a3a8c9c6baaae1534d59a78661db9f391ad2e139afe4dda3aa91eaaa68904d", + "n": 32 + }, + { + "hex": "7ef738c30501508efae31a09f0e19b674a8b3c7e0d4e4f65002a5daf7b75073e", + "n": 32 + }, + { + "hex": "249549d8561cde905dc40f97ed6b693cd7e99a94d7725634b59ed39b534f2e10", + "n": 32 + }, + { + "hex": "9a7b7e2bef58d6df279ce8656d8a3e3570ffd927373e9fdcf01d610cf93cc804", + "n": 32 + }, + { + "hex": "cfe395c1d829e4b1fa0a195ad8a1c8dd34e4a08fac028ffccd221e00a4a8fa56", + "n": 32 + }, + { + "hex": "8fcf0b21a61c1ce1bd85a2c06105b06ffddb5ae53ca7c75d4244b5cfe3b65a78", + "n": 32 + }, + { + "hex": "82c85df24388d21ec1414e6c0195eb167a48bc529267313d9fcd2cb6d988748b", + "n": 32 + }, + { + "hex": "b314506f30d60f718e35dd27f85b9ff1fd31f0ba3ffaaacbe1879061bcd1e32c", + "n": 32 + }, + { + "hex": "079a6ff6c02e9e15fab81b659e40d2698fc629b46b1be1d9397256620d4950fc", + "n": 32 + }, + { + "hex": "5f7ef8a5c10f2c21901bdd31da0650d3", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139206157716c62416b51377a70376f5367354361516e78713247466f7755486847442f6b576e50584c586a53380a6973643143644e6e7650486e555476306a3370517948616d2b7778796b7a763343626b4f48736f44676d510a2d3e205832353531392059766c4953746473746959646a684c666b6667324b582f31512b61322b4958334e305751443966634d6c770a68646966716f55526f384f4f7258443658457a495864516d453555595a4f512b56702b2b575162727552550a2d3e20583235353139206a54546b6f754969544e4657704f2f6a6f5a59794c64444432496f416f77735753393635716a326d686d450a52676e517268704e6d314f366168774230475559694b55576b4a66334d785733396a64306b6f76547553490a2d3e205832353531392058657a476c666759755241593675707a39716576566870517965775a6f737a75362f7633664e4d673152490a6365503448766a744d68627546334a436d4c6e3046414d784631507a565076376378624b447a7a584c35510a2d3e205832353531392056304e3038496c6b51514c567473736e416c62522f72686e734a7851395075354e4f5478365479394630590a585277634a6a44336a386165524973326c57797538556b73542b36734449554b6f386f645467506b4546450a2d3e2058323535313920392f61757a6b75516a64396a2b6f7a6f524641576e6a6a3452735a35375a645334323572537766665a33450a3347336c492f5479745475684a65786c5a334d515778303066426846747459576f31535530526b506671670a2d3e2058323535313920332f2f5a6f517266596d6e532b6b416e795166456b6c415936353631426e564e657a4b78656f7a4a5047340a357a654130794361386a4e56594a6d77684466306a624330737235502b626f62784f424c525436753562550a2d3e20583235353139204966326b7a6f5558696e39364a50377434677639375664326a356754505951584c692f644b6350315033410a7878556f4f3646656b7a2b615972346c7a77444b6c66487743527032386f65725378655951563743326d340a2d3e20583235353139206e6d3056633678327a75784d70547143427647526c3564466d6e424a497454523849782f543369644233410a373873764e32596b7a4171796e68595579344b59766a5741486b672b56766c3553422b6330414e4f556d510a2d3e205832353531392032514b3243776c71417353546d4a7a4c627a2f70517046774246496b792b687a552b41386542472b3043490a4e4c55664e566862386269745546326d384131314d776177463036312b49556f6168566d39336b674e72550a2d3e2058323535313920486e376c494f495a50763163645a43425451554e2b65664c5635344f4a6542324b4542502f5956462b30770a6b557a7050575839364e5930724572572b6a494a31614157584d533168625459794a354f715837626f52630a2d3e20583235353139205955446e682f475a412f334b716a4779355a49784750586c5058557635586b4437736f73415054455430730a323431365154584c39575247786d47633833685351596d377865386d366e72443752354c79534b386c52770a2d3e20583235353139206e3948434b635a4251556e344531766c70424a35752b39752b594b736e32464341502f6351686c534147630a6b58304c694b6f67394b3552577161324d706955762b757251316e506c4d35566b366c39392f574a5a6f670a2d3e20583235353139205552426a445a305841785662425837447639795a4f557135427442784378456f42526a56485569535053590a79376b617155557a4d4e374934436278574c69497055527a4c314972334e6f37795a6569364668316e74670a2d3e20583235353139207274305a58514f5543422b6a48656f6b553746344646656649376f5552376a6537717533437a6c544d79670a4d6e426f4d39755974776a6f43664c4538474e36366868656731515a57386758662f644a50536a2b5a52630a2d3e205832353531392061517249366e4c5174614b566374354663506f5a774956644a4d682b756c7446666250746c67353161466f0a64535742614d456b7837637953744b732f414172616251554f4e68394b41515131334f6d466e64624c586f0a2d2d2d206c4936305a475356374a3377314c31497a39336d7a394e6a396e6b784e6b34493937493661376f5448446b0a5f7ef8a5c10f2c21901bdd31da0650d379571b23ee4f40c6f4c6219d0d03b9ed7d1d27efa0ec6753276b0bc8eb2c6313e2f436a3d26a8cf63ed2047f7775c1c67a94d0ded8218038e694d9a8713ad44aa8bb6f34ba03f79959217af6277021079f656c2914c3a1605fb9b42cc09b071469ccd338705a973487cffeeb6dafa3b0c838ee8296254f", + "file_length": 1773, + "file_sha256": "f03c7989dfeb5681226fce272d22006442ee5790f760e6fc2d0cbc90a53c7231", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139206157716c62416b51377a70376f5367354361516e78713247466f7755486847442f6b576e50584c586a53380a6973643143644e6e7650486e555476306a3370517948616d2b7778796b7a763343626b4f48736f44676d510a2d3e205832353531392059766c4953746473746959646a684c666b6667324b582f31512b61322b4958334e305751443966634d6c770a68646966716f55526f384f4f7258443658457a495864516d453555595a4f512b56702b2b575162727552550a2d3e20583235353139206a54546b6f754969544e4657704f2f6a6f5a59794c64444432496f416f77735753393635716a326d686d450a52676e517268704e6d314f366168774230475559694b55576b4a66334d785733396a64306b6f76547553490a2d3e205832353531392058657a476c666759755241593675707a39716576566870517965775a6f737a75362f7633664e4d673152490a6365503448766a744d68627546334a436d4c6e3046414d784631507a565076376378624b447a7a584c35510a2d3e205832353531392056304e3038496c6b51514c567473736e416c62522f72686e734a7851395075354e4f5478365479394630590a585277634a6a44336a386165524973326c57797538556b73542b36734449554b6f386f645467506b4546450a2d3e2058323535313920392f61757a6b75516a64396a2b6f7a6f524641576e6a6a3452735a35375a645334323572537766665a33450a3347336c492f5479745475684a65786c5a334d515778303066426846747459576f31535530526b506671670a2d3e2058323535313920332f2f5a6f517266596d6e532b6b416e795166456b6c415936353631426e564e657a4b78656f7a4a5047340a357a654130794361386a4e56594a6d77684466306a624330737235502b626f62784f424c525436753562550a2d3e20583235353139204966326b7a6f5558696e39364a50377434677639375664326a356754505951584c692f644b6350315033410a7878556f4f3646656b7a2b615972346c7a77444b6c66487743527032386f65725378655951563743326d340a2d3e20583235353139206e6d3056633678327a75784d70547143427647526c3564466d6e424a497454523849782f543369644233410a373873764e32596b7a4171796e68595579344b59766a5741486b672b56766c3553422b6330414e4f556d510a2d3e205832353531392032514b3243776c71417353546d4a7a4c627a2f70517046774246496b792b687a552b41386542472b3043490a4e4c55664e566862386269745546326d384131314d776177463036312b49556f6168566d39336b674e72550a2d3e2058323535313920486e376c494f495a50763163645a43425451554e2b65664c5635344f4a6542324b4542502f5956462b30770a6b557a7050575839364e5930724572572b6a494a31614157584d533168625459794a354f715837626f52630a2d3e20583235353139205955446e682f475a412f334b716a4779355a49784750586c5058557635586b4437736f73415054455430730a323431365154584c39575247786d47633833685351596d377865386d366e72443752354c79534b386c52770a2d3e20583235353139206e3948434b635a4251556e344531766c70424a35752b39752b594b736e32464341502f6351686c534147630a6b58304c694b6f67394b3552577161324d706955762b757251316e506c4d35566b366c39392f574a5a6f670a2d3e20583235353139205552426a445a305841785662425837447639795a4f557135427442784378456f42526a56485569535053590a79376b617155557a4d4e374934436278574c69497055527a4c314972334e6f37795a6569364668316e74670a2d3e20583235353139207274305a58514f5543422b6a48656f6b553746344646656649376f5552376a6537717533437a6c544d79670a4d6e426f4d39755974776a6f43664c4538474e36366868656731515a57386758662f644a50536a2b5a52630a2d3e205832353531392061517249366e4c5174614b566374354663506f5a774956644a4d682b756c7446666250746c67353161466f0a64535742614d456b7837637953744b732f414172616251554f4e68394b41515131334f6d466e64624c586f0a2d2d2d206c4936305a475356374a3377314c31497a39336d7a394e6a396e6b784e6b34493937493661376f5448446b0a", + "length": 103, + "name": "x25519, sixteen recipients", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1PHWMN8H5YG8SDNCCGM2MJVS60P5WSX8A5X28NQLJF4G096U0GYYQ7G46CL", + "x25519": "age1qrae8y4jq3xw94mnvrd5n90yk2wj7am8e0cajx6zvdgyu6csjg2qsx6jfk" + }, + { + "identity": "AGE-SECRET-KEY-1MNGUYFVA6YY3PM52PEZMT6JV5H3AUA07V6C7P9QCL6XGAM69QY5SNP6ASD", + "x25519": "age1wnflq09p55y0j8wngfnww6vpudnayvpzs0nnq3y04kavx28z6epsalu8la" + }, + { + "identity": "AGE-SECRET-KEY-1ZG7220KMHS4PV2D2AHWGUSYHVJEJZSAURRW0UHXLTUN04JNJJEQQG3GQZN", + "x25519": "age1hz9qha8andjsurtdkc4j7mr80el4rvwe8f76g54ynp6jek44ygmsupj7ps" + }, + { + "identity": "AGE-SECRET-KEY-1JFHAUNKWYJCML8SPEVS2WWJTGG2XCPJ033830QNQNZMEFYKAZWFSVTM86X", + "x25519": "age1sq2qw44lhpm7xy6ddxmfydxc47354v37sa5zkhzad90r6xqevykq3rucll" + }, + { + "identity": "AGE-SECRET-KEY-198HYRJNZJVRQFFWC9XCZJGNT4AW3X4Z0Y9TK622YWW3YZH77MG6SFUFERJ", + "x25519": "age1x0nqcjp0k6twuflecw6f4zttj062uv5tkjd3qc88nv029glvtefq8tyxhz" + }, + { + "identity": "AGE-SECRET-KEY-1G8AGVKW4PYSQXXL5PZM2WSGZ6SD8TNJM38GVRZQ24DRTL6ZC5FQQX947TL", + "x25519": "age1e7ueklpkn8wp8f7apdggas8ecgamh7uhgc2upn52h4xjpywvku7sswhu5v" + }, + { + "identity": "AGE-SECRET-KEY-1J3N50VFTCYSPMZL7XQL063E4YVNWCR90WNJT63SFJ4MEWH4ZEFFQENZPJ0", + "x25519": "age1axjmv3u3m6lpqkg3gt9e9mww6pnmts2l9ctxyx6xjzmqd408v9aq4nulhx" + }, + { + "identity": "AGE-SECRET-KEY-1A2CQ2T004ZH4KEZ0LLHLRUYYCAJQ43U92PTEXH3EDLWF0AZGV9ES26GTWK", + "x25519": "age18efgt8m9r06ysezu9uh54kuln8spf3pph2v3n4unvc9adfndaqps9u4dk8" + }, + { + "identity": "AGE-SECRET-KEY-1KDWL4PQE9FQNXMXULP6DU4L7NQDUJVXWE2SEG0W8ZZW3TH60L4FSTU5TAU", + "x25519": "age1me60ucpfvg9wjwfrlnt5v8uw7mev8p8jqsr2vf78yl94l4dvdp7s3t54lv" + }, + { + "identity": "AGE-SECRET-KEY-106JJ6GCNTDXZCP24HTWH82X3H7DAAU4S4G2H5WK8JRPUMGD73JPSM4N3GY", + "x25519": "age1a6twsw32kc7kd3p9clytg8q20mrygtj6kd7n59jzsz44yes4v54qvqq6u8" + }, + { + "identity": "AGE-SECRET-KEY-10C4JHEMJ5K5AS9YX7QU7M37XPRCHSPJW5GF9SWKZM3Z9MN72787SUC7ZS7", + "x25519": "age1dvt4urxzpgxqmdpn0djhjgycg9y0z9jatejfzrr9r3g8gfcuxgjq84y3ms" + }, + { + "identity": "AGE-SECRET-KEY-18L8LD90U4G835HKELZTC05VSAZYWLDSJ9KHYJPZJ6VUFU9S7283SAQZMAH", + "x25519": "age178uxq3krkr5n0lmak4dd2wearr9yne6rckv6k24vd5g7v89mtg7qtwu280" + }, + { + "identity": "AGE-SECRET-KEY-1A8Q6UZ9KFZG68MENHGPDJDWVPUZVMZWYQJHJSDAETFZX2TEV537SVACZM3", + "x25519": "age1wgsa5pjknwxjq3s32d8gw3sgpxjgep3l88r0mpswx0u950chscnqucvs8d" + }, + { + "identity": "AGE-SECRET-KEY-1XN9L44NNVRJWHJM8PUVR0J02N9GK5AQ2A2RDENGE9K3RLTP4GNSQTPDM5D", + "x25519": "age1eqk2fns0yve3zcan3sg8arrgf0y9x6vg0ghwcm3g6ny6twtaudtqlggsrw" + }, + { + "identity": "AGE-SECRET-KEY-1QPV0NUPY4K8WCFD0JMRXJN8Y6305UMYQR72TAAVYMH5926AF9ZVQCJRYM4", + "x25519": "age17n75x0a4uejfwxawxya8kuh6e8c3acntjepmf4wy78qtk7hev4xs5qc8yq" + }, + { + "identity": "AGE-SECRET-KEY-1N50XDWSCVMQ5SQCPZZVHGXQ6U39QUV7LGU23W8ZHKS2VA6LPU6SS9MQ69S", + "x25519": "age1udsv2ucw3hgec8ycscec7dsxpqgap525458d6k26mqrgc29a0uxs8rr50g" + } + ], + "seed": "age writer x25519, sixteen recipients" + }, + { + "draws": [ + { + "hex": "e18ee9b3c787547199a7a06d7aadbd8b", + "n": 16 + }, + { + "hex": "fc335d38c7dcfd32a14ce39547ac87af78d2853e3057bb673a47de55bb965bb4", + "n": 32 + }, + { + "hex": "8b0a9cf48faf40b0a258e22be9457c8921d750934c2e3c19ac0305c6d79b65bc", + "n": 32 + }, + { + "hex": "c8e9012bf2295171e9b593f576b75bc4e1f5af7bc487c05e0bba7116d898b240", + "n": 32 + }, + { + "hex": "9c423c43e4a16c764ac3ae512a86e151c20da4d5157bb2194594a2f9d4e727e3", + "n": 32 + }, + { + "hex": "d83dedf687f33e35737cfaada4afbf99e05383b579053c8e29b330dd577d0973", + "n": 32 + }, + { + "hex": "1ae901d2773101093b148b0cff6a297d041aa3b2f7f1f311a6e044d80cb26b2f", + "n": 32 + }, + { + "hex": "02737f2d4f78f3b874d0a12e69c256ac22006a2242422ddffbb5d04466fa2e30", + "n": 32 + }, + { + "hex": "6d1568eade6df8e203ae2618f63bff8b51290d936016b262c527d346da00facc", + "n": 32 + }, + { + "hex": "8b84d70474f0e0c6f3e2581ed6ad634535f86079c501a446c059e738107954f4", + "n": 32 + }, + { + "hex": "5dd7fe856ca9f7fbcdbb8afa07e3aee1877e15f3ffea6e8beb5cc6d6301e724f", + "n": 32 + }, + { + "hex": "d83245ac691171888215fa11e6acd029a14888bb99626bcce97b3fc49e91d5ee", + "n": 32 + }, + { + "hex": "03a3f1f4fa39a7a9a33229d593a0e4d7851c6862c73abdb82b81a662e4c8abd8", + "n": 32 + }, + { + "hex": "b6ee1344f2fb1ee105c70526ef13692b3e1efb2c975ddb43c1cbc3fae3ac967d", + "n": 32 + }, + { + "hex": "f836da18e0c25114991b4d956526f3382df2207b09bd769d3c358d79b01c11a7", + "n": 32 + }, + { + "hex": "cb0080ebdac5637528959d139017a64cc24e70db9311e79416c87cad9b30ca3c", + "n": 32 + }, + { + "hex": "645b2ede60a48ebe818fb8dd5913d9afe32740dcbc55ee955d18a057d8acbced", + "n": 32 + }, + { + "hex": "307352675734f63834030885638fee92", + "n": 16 + } + ], + "file_length": 71686, + "file_sha256": "6899746e23ed8cd668e52908efdad16146a8d3bbf4283fe7e9213bfcc81d183d", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139205a674855664b466744786375526e65793335364f31444e34317a423567307a722b564778332f6461496e490a6a4e4e4641424d4c65614f2f636672714a565457636a6e45473951667163673936474d6f6f6172772b43410a2d3e2058323535313920382f782f305268323366706230624476686e546565486774627a4d4676564f4462492f33626b55724841510a54754d3378434765452f3548522f616e6e74493258516b694b314354497a336477785a37375359495679510a2d3e205832353531392076534b48514c464a55394d3538724c464e68306b2f347a5637712f414e423534757067363265716e7544510a65346e30514a4b6349485744517749712f6a494a706c4579715253373350464571657770647832327661490a2d3e205832353531392047644463526d7831422f586e577658705965545970765446474c587146612b6c543139464d7236466d79380a4336676f4f554d67466f4332524f6a5a6d55416e6139656b4a4558592f6d426f7165433465454b363673380a2d3e2058323535313920442b4a454d6d3654423545394d6b5176776130644536764769666b755948416e6b7772324d55786a50694d0a6e74344a6b3966774f757958645a526a564163636635786c6a4f52693045726c51456f57734c364d52626b0a2d3e205832353531392074494f5178697a56324335666c51616e52734c4b2b734d6a4c63373442586a5856426a71796d6d306c68490a7669364234474537556f6a727a59634d56754364376969325a4f4139723056674d494a484537746d4d72670a2d3e20583235353139203141586d6d2b6f47354266457975344d616934503154692f33504439542f4e7764456257793038445431730a4566415a4b3535304e34735355315752644177376e2f634347584d343674452f5071476633426a36324a4d0a2d3e2058323535313920724c546f7361756e764e38537179326c32465a6c664242673054357462455a4e764c50394c326c516267510a537a63464d50384c454955433966546c497a766a744d376e664971316b54576d386544436171546e636a490a2d3e2058323535313920725a4b7146756136756f41444f534e50454935474e76775a536978744853534c38496e7262533779347a450a746e6477313751476863423756486f6c2b2b6d494c6c4b4835476b506b6d55744463473952766a4f5449590a2d3e20583235353139206a6c595848503164543963764342705751375a466b475a784f4c312f6753364759773857547232384f434d0a52745932727875466658575852374c7334544f554138674363734b53622b3645746d5a76784344485533730a2d3e20583235353139206d53516773364c3278746c4a4c594333436c3475744b2f67534b72735047544539697167674a7356776e630a396c4279685a79364357723548774b4e516d695946587175466e73434249487a6355594453756a695945770a2d3e20583235353139204f787850717642663859706e6a754f7563633155696b364175785451614d6c6b6c5a576a65795a4c4647670a6c75556d72682b4c47494c746f4a4e77584e567330636f50732b7a7a4834734b366262394e4337626878450a2d3e2058323535313920567662496b525739785451444f423351727a56424c646d3979716d4130456a4e6671564174434d5a4377770a6a517a5433544c6e62442b473244516b4f77647657494258664c42414272693749384641757a616b7668490a2d3e20583235353139205236324653794f54356e38566236727376412b6b336e425936432b36425a44707857484c706b4647466c6f0a4e51567a4d6f4555474f6a4a4956646d527364364d2f78506b577a38664e3032356e66626a496c4b4278770a2d3e205832353531392052717851654f7354484a707676304333734d7978373042547376327564514b6753665464675044656941490a76595a376756354c5039476e47756f3456504a504257394130507a314c36387a76675a4e563441417044380a2d3e20583235353139207672473943343768372f5775793271424b6d55592f32493232686a69654d594768755546766c6c566b56630a6569644f463353474b752f487047414d553669734d56626849512b6a4f784a52304f61486b53646e3057550a2d2d2d206d387332413271716d72434d32564c38665336414453756d39356b4c516841736979786a762b6b6c3168300a", + "length": 70000, + "name": "x25519, sixteen recipients, 70000 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1PHWMN8H5YG8SDNCCGM2MJVS60P5WSX8A5X28NQLJF4G096U0GYYQ7G46CL", + "x25519": "age1qrae8y4jq3xw94mnvrd5n90yk2wj7am8e0cajx6zvdgyu6csjg2qsx6jfk" + }, + { + "identity": "AGE-SECRET-KEY-1MNGUYFVA6YY3PM52PEZMT6JV5H3AUA07V6C7P9QCL6XGAM69QY5SNP6ASD", + "x25519": "age1wnflq09p55y0j8wngfnww6vpudnayvpzs0nnq3y04kavx28z6epsalu8la" + }, + { + "identity": "AGE-SECRET-KEY-1ZG7220KMHS4PV2D2AHWGUSYHVJEJZSAURRW0UHXLTUN04JNJJEQQG3GQZN", + "x25519": "age1hz9qha8andjsurtdkc4j7mr80el4rvwe8f76g54ynp6jek44ygmsupj7ps" + }, + { + "identity": "AGE-SECRET-KEY-1JFHAUNKWYJCML8SPEVS2WWJTGG2XCPJ033830QNQNZMEFYKAZWFSVTM86X", + "x25519": "age1sq2qw44lhpm7xy6ddxmfydxc47354v37sa5zkhzad90r6xqevykq3rucll" + }, + { + "identity": "AGE-SECRET-KEY-198HYRJNZJVRQFFWC9XCZJGNT4AW3X4Z0Y9TK622YWW3YZH77MG6SFUFERJ", + "x25519": "age1x0nqcjp0k6twuflecw6f4zttj062uv5tkjd3qc88nv029glvtefq8tyxhz" + }, + { + "identity": "AGE-SECRET-KEY-1G8AGVKW4PYSQXXL5PZM2WSGZ6SD8TNJM38GVRZQ24DRTL6ZC5FQQX947TL", + "x25519": "age1e7ueklpkn8wp8f7apdggas8ecgamh7uhgc2upn52h4xjpywvku7sswhu5v" + }, + { + "identity": "AGE-SECRET-KEY-1J3N50VFTCYSPMZL7XQL063E4YVNWCR90WNJT63SFJ4MEWH4ZEFFQENZPJ0", + "x25519": "age1axjmv3u3m6lpqkg3gt9e9mww6pnmts2l9ctxyx6xjzmqd408v9aq4nulhx" + }, + { + "identity": "AGE-SECRET-KEY-1A2CQ2T004ZH4KEZ0LLHLRUYYCAJQ43U92PTEXH3EDLWF0AZGV9ES26GTWK", + "x25519": "age18efgt8m9r06ysezu9uh54kuln8spf3pph2v3n4unvc9adfndaqps9u4dk8" + }, + { + "identity": "AGE-SECRET-KEY-1KDWL4PQE9FQNXMXULP6DU4L7NQDUJVXWE2SEG0W8ZZW3TH60L4FSTU5TAU", + "x25519": "age1me60ucpfvg9wjwfrlnt5v8uw7mev8p8jqsr2vf78yl94l4dvdp7s3t54lv" + }, + { + "identity": "AGE-SECRET-KEY-106JJ6GCNTDXZCP24HTWH82X3H7DAAU4S4G2H5WK8JRPUMGD73JPSM4N3GY", + "x25519": "age1a6twsw32kc7kd3p9clytg8q20mrygtj6kd7n59jzsz44yes4v54qvqq6u8" + }, + { + "identity": "AGE-SECRET-KEY-10C4JHEMJ5K5AS9YX7QU7M37XPRCHSPJW5GF9SWKZM3Z9MN72787SUC7ZS7", + "x25519": "age1dvt4urxzpgxqmdpn0djhjgycg9y0z9jatejfzrr9r3g8gfcuxgjq84y3ms" + }, + { + "identity": "AGE-SECRET-KEY-18L8LD90U4G835HKELZTC05VSAZYWLDSJ9KHYJPZJ6VUFU9S7283SAQZMAH", + "x25519": "age178uxq3krkr5n0lmak4dd2wearr9yne6rckv6k24vd5g7v89mtg7qtwu280" + }, + { + "identity": "AGE-SECRET-KEY-1A8Q6UZ9KFZG68MENHGPDJDWVPUZVMZWYQJHJSDAETFZX2TEV537SVACZM3", + "x25519": "age1wgsa5pjknwxjq3s32d8gw3sgpxjgep3l88r0mpswx0u950chscnqucvs8d" + }, + { + "identity": "AGE-SECRET-KEY-1XN9L44NNVRJWHJM8PUVR0J02N9GK5AQ2A2RDENGE9K3RLTP4GNSQTPDM5D", + "x25519": "age1eqk2fns0yve3zcan3sg8arrgf0y9x6vg0ghwcm3g6ny6twtaudtqlggsrw" + }, + { + "identity": "AGE-SECRET-KEY-1QPV0NUPY4K8WCFD0JMRXJN8Y6305UMYQR72TAAVYMH5926AF9ZVQCJRYM4", + "x25519": "age17n75x0a4uejfwxawxya8kuh6e8c3acntjepmf4wy78qtk7hev4xs5qc8yq" + }, + { + "identity": "AGE-SECRET-KEY-1N50XDWSCVMQ5SQCPZZVHGXQ6U39QUV7LGU23W8ZHKS2VA6LPU6SS9MQ69S", + "x25519": "age1udsv2ucw3hgec8ycscec7dsxpqgap525458d6k26mqrgc29a0uxs8rr50g" + } + ], + "seed": "age writer x25519, sixteen recipients, 70000 bytes" + }, + { + "draws": [ + { + "hex": "961f3e88a795adfdc38c67428ff234af", + "n": 16 + }, + { + "hex": "ef7c4b1196100a89d245cc95e41afe51ec67ee20cdf45e5feff4c22d4bb05645", + "n": 32 + }, + { + "hex": "e0796321de3abe22893afee37d7322eb", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139204c3263394a45557a4e333346577573766253554e672f376a70344a49464d4f3433744f764b3062594d30590a3835647478644945352b4a36386e74784b787961436843586d524e4b736942576f537768786d3275395a300a2d2d2d20507341617244625a35542f7162694553714b3346394d5054646f4e474d5279584e4930307432755572366b0ae0796321de3abe22893afee37d7322eb74dab1c5f7a12c1130ad0a1c971a56a3b2ee81be07a3d0c91f11", + "file_length": 210, + "file_sha256": "bb960b347df2489f6060e10486bc632e46882f992ebab64e583c808aee513c01", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139204c3263394a45557a4e333346577573766253554e672f376a70344a49464d4f3433744f764b3062594d30590a3835647478644945352b4a36386e74784b787961436843586d524e4b736942576f537768786d3275395a300a2d2d2d20507341617244625a35542f7162694553714b3346394d5054646f4e474d5279584e4930307432755572366b0a", + "length": 10, + "name": "x25519, a recipient with bit 255 set", + "node": true, + "recipients": [ + { + "x25519": "age1y8g4qqncj7dh9p7xujtzpajrwqxgg2zk3pcdwyv6ft5xp9xjqz2q8j4fsz" + } + ], + "seed": "age writer x25519, a recipient with bit 255 set" + }, + { + "draws": [ + { + "hex": "1a357d30b96987a21471aaac2a63262e", + "n": 16 + }, + { + "hex": "282615ae56e5916289cf3b5741c86a4a", + "n": 16 + }, + { + "hex": "e8df180627fad57f5be57fceb04ead18", + "n": 16 + }, + { + "hex": "cb3b93f9ed8e0b3cc1f59caad74b3d70", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20736372797074204b435956726c626c6b574b4a7a7a745851636871536720310a42524d4f62764d305a414a7943382f4c4c424f727061336a38576b453944315766787137412b31446970590a2d2d2d2030305a63584273476d4c3872716f506e4630386a634a59636837376c7468376e62756a387856594e7633450acb3b93f9ed8e0b3cc1f59caad74b3d7074d22c1dfe7015a1600c367faa2602da", + "file_length": 181, + "file_sha256": "7c0f464034c2938ce395024fbc83d5bac1d92b9b67ab52b643144b72bfc9f084", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20736372797074204b435956726c626c6b574b4a7a7a745851636871536720310a42524d4f62764d305a414a7943382f4c4c424f727061336a38576b453944315766787137412b31446970590a2d2d2d2030305a63584273476d4c3872716f506e4630386a634a59636837376c7468376e62756a387856594e7633450a", + "length": 0, + "name": "scrypt, work factor 1, 0 bytes", + "node": true, + "recipients": [ + { + "scrypt": "correct horse battery staple", + "work_factor": 1 + } + ], + "seed": "age writer scrypt, work factor 1, 0 bytes" + }, + { + "draws": [ + { + "hex": "186b5e9db702661d90c703a23dd9a0e9", + "n": 16 + }, + { + "hex": "b407e5b299390396e9108cf4587a8dec", + "n": 16 + }, + { + "hex": "1f5e7ee719b99cdc989ccbd72a8f4188", + "n": 16 + }, + { + "hex": "13af1f6747f39cca5242e8c328def9f0", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20736372797074207441666c73706b354135627045497a305748714e374120320a625a6d736a4f4d30365250637a61786150484c3634596c717362493871303978365848534766346833756b0a2d2d2d20776835795661414a3046693048382f62424a74767657646948435841306854713635556d634874362b70510a13af1f6747f39cca5242e8c328def9f078890c841c1c5e2a5979cd71bc2f5e4bf329d6939187ebfe2077aca8d8639f79072771a91e984b16e286b621816e4def66da43f45cdcf6facb5b7fb307e94fac8d500b84bd00f4faa5418b2af65de6ff3fe3ecc3189d55305289232cca566974bc46cc08f31b113a81b35e07b4d4064cd0c6020e0b8a6c3bcf32e775f6f518411ef55bab6c8310e527f0cccc0316cf601a33add4d1b15d72e20c7115360380c2b845424f1099", + "file_length": 331, + "file_sha256": "cf923ad824e588977a3bdbe01cf7d3343e419e9541ed19638f019c5d97600e42", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20736372797074207441666c73706b354135627045497a305748714e374120320a625a6d736a4f4d30365250637a61786150484c3634596c717362493871303978365848534766346833756b0a2d2d2d20776835795661414a3046693048382f62424a74767657646948435841306854713635556d634874362b70510a", + "length": 150, + "name": "scrypt, work factor 2, 150 bytes", + "node": true, + "recipients": [ + { + "scrypt": "correct horse battery staple", + "work_factor": 2 + } + ], + "seed": "age writer scrypt, work factor 2, 150 bytes" + }, + { + "draws": [ + { + "hex": "774bf82d50b2fe7d80b7bf3eff1003f7", + "n": 16 + }, + { + "hex": "05182e0d07a6a7d3b13655dbf8a2265d", + "n": 16 + }, + { + "hex": "1a3c9e686f062c813b8cdb174305e9b5", + "n": 16 + }, + { + "hex": "4d9fcd391a35402e006284e630bbec32", + "n": 16 + } + ], + "file_length": 70197, + "file_sha256": "d00796aa883bc23d109ba5e759be4dd5aeebcff7cacfbf815f7c12f97ef2d81a", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2073637279707420425267754451656d70394f784e6c58622b4b496d585120320a58716f684567387430464f534b595275384f2f3032785564744a45783658525456556c58364e366e3161300a2d2d2d2056664e5a5356354f6b42656f517138676f5768694a316f622f713446583444356f646248363143476b33510a", + "length": 70000, + "name": "scrypt, work factor 2, 70000 bytes", + "node": true, + "recipients": [ + { + "scrypt": "correct horse battery staple", + "work_factor": 2 + } + ], + "seed": "age writer scrypt, work factor 2, 70000 bytes" + }, + { + "draws": [ + { + "hex": "90b455cd8acf4c55a74b96c4c1bf9271", + "n": 16 + }, + { + "hex": "769f93fb6d2d1088dc909bfc98e62006", + "n": 16 + }, + { + "hex": "02980dca5c0779f09d71778b24f533e3", + "n": 16 + }, + { + "hex": "db22e66d26f03f09b4e3c43d015f093c", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e207363727970742064702b542b32307445496a636b4a76386d4f596742672031300a716e4e4f74356d5038577258547255384c79536d666d726c385a4b79645164314e55577154494e536a79410a2d2d2d203277584158317761386b776f38787149787a50343157486138535a35564434707972433148724e436931450adb22e66d26f03f09b4e3c43d015f093c5aa72ea756576413011ba4aa64450d34546ee0ccda709ca24c035a7deac7f0fa4f8c0cc33accbafd018e615ecf1524843df46025a5b2bb1bb753a4b071b130299c79555d1194d271560380d9904a16c348e648b88aff632c798ff466691ccee579ad2949d354b2d820365168ec14e4307129a24621f4ebf493d70b13b9268f3db826f154926be292bdcc73e0c85375f711fc54a2c3384c80b68308c333350ee9740f0c256e20", + "file_length": 332, + "file_sha256": "49c0d885378fbee4bb5823796a4a5cf6fd540c6b03738b77acf19bd4e3f84872", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e207363727970742064702b542b32307445496a636b4a76386d4f596742672031300a716e4e4f74356d5038577258547255384c79536d666d726c385a4b79645164314e55577154494e536a79410a2d2d2d203277584158317761386b776f38787149787a50343157486138535a35564434707972433148724e436931450a", + "length": 150, + "name": "scrypt, work factor 10, 150 bytes", + "node": true, + "recipients": [ + { + "scrypt": "correct horse battery staple", + "work_factor": 10 + } + ], + "seed": "age writer scrypt, work factor 10, 150 bytes" + }, + { + "draws": [ + { + "hex": "1dc8d56cc513b3aa1d44cdb4ab3cf699", + "n": 16 + }, + { + "hex": "5a3d8e81be86eb18b1652c2e441ad533", + "n": 16 + }, + { + "hex": "2d9c2defa36d527f1dc9996b6c810b29", + "n": 16 + }, + { + "hex": "bddd405b01840bfc8ee7d392414b5fc6", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2073637279707420576a324f67623647367869785a537775524272564d772031360a47524d33387676764c466f2f6838436f716a4b5757612b364c4f6248544c5a366b5530697a6258777851510a2d2d2d2075796568465878356a53714754636442726b4948374b7866632f2f6466444a622f4b41774668324a455a410abddd405b01840bfc8ee7d392414b5fc6c7dbeb54fd6626a4ee1b866e0d7db845854cf73373fd186b64bc0e27880fd41f56301e88da86376972c69481c87408b16b9a57ce691e307d481fd601ceb2cd9bd7934f072e27016860b7173eabb06cee0ae662055f1f620a06d255bf247a2d71bad49a8f3f55d0190f2eb6ae7bbdb0f8fe5b294be22f5dc355d1fd1c9798407ac2493be9b982525b6755819f364b61d44c51583e6ea55ee627c26b6aa6b295dc837ad220547a", + "file_length": 332, + "file_sha256": "77370652fb4ab26894edbf3da6d551ead7b3b5f4a1971bb3fc3c310706a4450c", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2073637279707420576a324f67623647367869785a537775524272564d772031360a47524d33387676764c466f2f6838436f716a4b5757612b364c4f6248544c5a366b5530697a6258777851510a2d2d2d2075796568465878356a53714754636442726b4948374b7866632f2f6466444a622f4b41774668324a455a410a", + "length": 150, + "name": "scrypt, work factor 16, 150 bytes", + "node": false, + "recipients": [ + { + "scrypt": "correct horse battery staple", + "work_factor": 16 + } + ], + "seed": "age writer scrypt, work factor 16, 150 bytes" + }, + { + "draws": [ + { + "hex": "5b5b6b6d712e400df90d31c98d1e997c", + "n": 16 + }, + { + "hex": "4dafbefe42555b08a060e034b4e69e00", + "n": 16 + }, + { + "hex": "0333571986a7957f6039cb3913b632d3", + "n": 16 + }, + { + "hex": "cdbcc0319f72a2559b4ab3055138e761", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e207363727970742054612b2b2f6b4a5657776967594f4130744f6165414120310a4c6b774b516934544957503554347755432f3569506d3071757349696a652b4d544e4e6a6a3732692b41490a2d2d2d206c6930346f4436734a38744b62674b496a794c66617a447358325570306e463575664b2f694a4c6b4c5a340acdbcc0319f72a2559b4ab3055138e761a758a20d44d785e3ebd180e02e36c5ccd88d3d", + "file_length": 184, + "file_sha256": "6fb3e4c94dd0d7267e64471bdc61dc1c2207612dc32a63cd2dc8c7f6da531dfa", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e207363727970742054612b2b2f6b4a5657776967594f4130744f6165414120310a4c6b774b516934544957503554347755432f3569506d3071757349696a652b4d544e4e6a6a3732692b41490a2d2d2d206c6930346f4436734a38744b62674b496a794c66617a447358325570306e463575664b2f694a4c6b4c5a340a", + "length": 3, + "name": "scrypt, a passphrase of one byte", + "node": true, + "recipients": [ + { + "scrypt": "p", + "work_factor": 1 + } + ], + "seed": "age writer scrypt, a passphrase of one byte" + }, + { + "draws": [ + { + "hex": "04c73279784ab6ba7a244a62270735fc", + "n": 16 + }, + { + "hex": "905ca7b2b3618c1f19e28aa98bf918e1", + "n": 16 + }, + { + "hex": "8aaa68975a2dd01874181c9f2357e277", + "n": 16 + }, + { + "hex": "3091ad7278096424ce1ad3a3fe9b52da", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20736372797074206b46796e73724e686a42385a346f7170692f6b59345120320a6345634b4754545736626b47532b6b6c38682f687956497159342f6b666e35646a2f6b6c766c4f33584b4d0a2d2d2d20462f6e31754d55585671664531554b776334744e7653454c795959686f67595268743331796b6853554a4d0a3091ad7278096424ce1ad3a3fe9b52daa7f1c94a71d16b08830b98470860eda34f5954", + "file_length": 184, + "file_sha256": "b50c46c3ef99fc6613a445ab0db386515b20f630f27fb80dfd3a804f68d71baf", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20736372797074206b46796e73724e686a42385a346f7170692f6b59345120320a6345634b4754545736626b47532b6b6c38682f687956497159342f6b666e35646a2f6b6c766c4f33584b4d0a2d2d2d20462f6e31754d55585671664531554b776334744e7653454c795959686f67595268743331796b6853554a4d0a", + "length": 3, + "name": "scrypt, a passphrase in UTF-8", + "node": true, + "recipients": [ + { + "scrypt": "contraseña de prueba ñ €", + "work_factor": 2 + } + ], + "seed": "age writer scrypt, a passphrase in UTF-8" + }, + { + "draws": [ + { + "hex": "3b54842e1f228d892e95740f184fcc8b", + "n": 16 + }, + { + "hex": "d148bd47b6bec971c6294e1a7c35ae9e", + "n": 16 + }, + { + "hex": "2b4c72c6eee88ce3d0a6d3ab04572ba9", + "n": 16 + }, + { + "hex": "1c23fa447efc0a7a54aa6f38f7083536", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203130303020353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a67765a2b525339614b3357456c6873767a4359384e3950426a667a777131546e6562637358554d632b72304d68334359473867596349424255464454657a6c610a454e2f61626677756357494e70576b4142713968736b66464d36656e494a5764646b583076394853374b75794330647164454e6a496a447279505357644852620a77752b69624d5a7a71383637353151716e536c5139647678524a343133364173754167773053596f7261380a2d2d2d203947796a44665957364f2b474369313074357232324f376f795468366533492f4c586f7042562f36705a590a1c23fa447efc0a7a54aa6f38f70835361865983726cf269cd5793a926bf9356842aa13ca7d4c9fe01f006f537fac6030", + "file_length": 371, + "file_sha256": "a152a62b5f5c00a8cd51bcfb6fac2e8e91ab19e9a664129dfbb4db4b6addb3b6", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203130303020353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a67765a2b525339614b3357456c6873767a4359384e3950426a667a777131546e6562637358554d632b72304d68334359473867596349424255464454657a6c610a454e2f61626677756357494e70576b4142713968736b66464d36656e494a5764646b583076394853374b75794330647164454e6a496a447279505357644852620a77752b69624d5a7a71383637353151716e536c5139647678524a343133364173754167773053596f7261380a2d2d2d203947796a44665957364f2b474369313074357232324f376f795468366533492f4c586f7042562f36705a590a", + "length": 16, + "name": "tlock, round 1000, 16 bytes", + "node": false, + "recipients": [ + { + "tlock": 1000 + } + ], + "seed": "age writer tlock, round 1000, 16 bytes" + }, + { + "draws": [ + { + "hex": "b9d87bed876a0ff516d289e04afb46c9", + "n": 16 + }, + { + "hex": "15f32f8ffbb58eabcbaf7f015c1c5779", + "n": 16 + }, + { + "hex": "6b3d6cbed123ac11958a7cbcf309b040", + "n": 16 + }, + { + "hex": "90455dd1fc9dccd451a2ddd73f287118", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203130303020353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a6b4d452b3743553249712b6e52774231514a62426a4d5635785353486b7452366c32386564636e6f354a7745546e6d564e417974454854756451752f3379485a0a43543534383230685a5673637438736c4f766e543273537a3879624c484157795637334e75327144373762507571624f50537936764f6466475235696a6978420a552f2f69656467364e4373314973506f714d2f44524c766e693069756a6d4a76504543664a2b776b2f55410a2d2d2d204f556742322b534535544947666a464f41326c6e704f3443344742357572647462455a7a6d6a5541634a490a90455dd1fc9dccd451a2ddd73f287118b091b1e8f31fcfc2651d17b015d77a018bdf8400b09211b7c774a5fb775ba39eb64181b6494ce62d12d1b9b2c4ad37655ac6f5e49a24d4d5a30a557519b6bc760bed3475208225960f1c73e59c596535595529ad304eb8229f5aeabcd88fd5582735f60378f92fca5b86e25512af98884a8e85d49d323c", + "file_length": 458, + "file_sha256": "10c6acaecacb15e59ba318215b0994bb5e788fef55c8bb1597b397168c11d7f0", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203130303020353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a6b4d452b3743553249712b6e52774231514a62426a4d5635785353486b7452366c32386564636e6f354a7745546e6d564e417974454854756451752f3379485a0a43543534383230685a5673637438736c4f766e543273537a3879624c484157795637334e75327144373762507571624f50537936764f6466475235696a6978420a552f2f69656467364e4373314973506f714d2f44524c766e693069756a6d4a76504543664a2b776b2f55410a2d2d2d204f556742322b534535544947666a464f41326c6e704f3443344742357572647462455a7a6d6a5541634a490a", + "length": 103, + "name": "tlock, round 1000, 103 bytes", + "node": true, + "recipients": [ + { + "tlock": 1000 + } + ], + "seed": "age writer tlock, round 1000, 103 bytes" + }, + { + "draws": [ + { + "hex": "69968118785faf75a20795f08aa87c5f", + "n": 16 + }, + { + "hex": "8465da003e30a486617f0a96d645c101", + "n": 16 + }, + { + "hex": "177ec19b8fcd2e2270bc8590c13cf0e5", + "n": 16 + }, + { + "hex": "8a9a4e5d6a5468c51f5d40439d886283", + "n": 16 + } + ], + "file_length": 2128, + "file_sha256": "64cad73af1ddd76e8fa594f83ae4aba8f3dc258b8798f8fea7fcb1368cc3c0fc", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203130303020353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a6c4a73376b52686c36565571636a6a676d37584445306138734e3366506d72544d463973677a566f564b434c326c504e736d765357464f73447265326a624d510a41637335455a31646447634553324b66687348696365684c37756b3575313264434b3348366c4c632f2f4334556d554154454149734635696979564f704c4a690a78324171374a367a735654633731435147654679315131352b48566a38594d6c514d625131442f4b344f550a2d2d2d204e69627354714b5954514f6b47384d70496630476768744356515252344b3368385753536f4e36455462410a", + "length": 1773, + "name": "tlock, round 1000, 1773 bytes", + "node": false, + "recipients": [ + { + "tlock": 1000 + } + ], + "seed": "age writer tlock, round 1000, 1773 bytes" + }, + { + "draws": [ + { + "hex": "c02f4c5ddcebed003691cd344b4326ef", + "n": 16 + }, + { + "hex": "4ccfdc9f8b4a02db0a1ffbea3142e219", + "n": 16 + }, + { + "hex": "e31f8c22e0100798a4a58339783de2f9", + "n": 16 + }, + { + "hex": "47e662cb6105182606666bd11076641e", + "n": 16 + } + ], + "file_length": 70371, + "file_sha256": "180a30c53d43f37bd571d3e69f905db731f6f4d1a9e9d117e9938ee03a8dfd88", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203130303020353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a6d4345657846667831764a2b3846686e7a69656e446c3146616e394d515469566e57737938374236706862385766354e47474463583577766b6e65596e676e4a0a4262724a6f4a497069684b784239574f6643352b6d474e437332714f664846474d49514a386357564454364e79374531573738722f6d675553417470396941310a697551706b6f3851734a5a56526e4f427342574942486262617864396354316f7259374142762f4b34764d0a2d2d2d2050506632304b4b4c4243477763546a6d3168424f4135316854425251796d6d477a6d4f79506f59776b55590a", + "length": 70000, + "name": "tlock, round 1000, 70000 bytes", + "node": false, + "recipients": [ + { + "tlock": 1000 + } + ], + "seed": "age writer tlock, round 1000, 70000 bytes" + }, + { + "draws": [ + { + "hex": "5d794aba4fac627472d1bd0ef2836861", + "n": 16 + }, + { + "hex": "1d66fadfcd42975b15e91d45ce3668c4", + "n": 16 + }, + { + "hex": "78a8658c4aafde0f17684cf3dd73ad2f", + "n": 16 + }, + { + "hex": "4db71c54a425d593808729a435ed707e", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203130303120353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a693644733765577177785767787452736a4d2b39686c4c4f4d416848774f787753455338593764654c6a4d6d4b3355427963566767772f756b4b486c374138320a423444494b46627a6b5a4c5a4f73312f6b4c677971595544354276704e7738565548304b514146346179516c4653537a786a3877546737654d4944626b6d75350a4476797a3547376a3733496b6443784d31764f7a6f482b456c4572646345766f7552474f68586c636b466f0a2d2d2d2058532b51352f4c4279736479416136624f5a772f767459314c39656f6c4566597579575747414f6937686f0a4db71c54a425d593808729a435ed707e4c000990cfd4e8e10767e5cdd918f03c", + "file_length": 355, + "file_sha256": "201c1e8e88e509b71f97f8b7dfeaa5b35e1fe5382be4773e179d439a16fb18d4", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203130303120353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a693644733765577177785767787452736a4d2b39686c4c4f4d416848774f787753455338593764654c6a4d6d4b3355427963566767772f756b4b486c374138320a423444494b46627a6b5a4c5a4f73312f6b4c677971595544354276704e7738565548304b514146346179516c4653537a786a3877546737654d4944626b6d75350a4476797a3547376a3733496b6443784d31764f7a6f482b456c4572646345766f7552474f68586c636b466f0a2d2d2d2058532b51352f4c4279736479416136624f5a772f767459314c39656f6c4566597579575747414f6937686f0a", + "length": 0, + "name": "tlock, round 1001, 0 bytes", + "node": false, + "recipients": [ + { + "tlock": 1001 + } + ], + "seed": "age writer tlock, round 1001, 0 bytes" + }, + { + "draws": [ + { + "hex": "9dff009c7a9782e76ac11b14c224958b", + "n": 16 + }, + { + "hex": "b80c217ab0521572d7dbf73f3a32e625", + "n": 16 + }, + { + "hex": "25941b2301a19d7dcc943f9c28d6c5d6", + "n": 16 + }, + { + "hex": "f9936b3802a7f040027b80bfadd052cf", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203120353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a72596d474f6e4f524f79713434396e485854347a4a72576564414d6e47715848454364353972784832556a7a324d4a4f494566364d5737783136617831656e750a41393131346c4b36387437434b4d506b633151544d6275675a3938763944526f6467774c7832507743357674586a4871364550704459794f75765255354543520a386c50346e654c4b69334272484a314f7256417747444f524438726f6c7741424f386d43443564574f69490a2d2d2d20577a424c6f54365042742b4f5379324757506e2b6f6764687838747a564c774a6876686455743959354a490af9936b3802a7f040027b80bfadd052cf4ada302f51cbae351dbc7f6a70e88ef4e36ce9fbfd4765f92e267ba6ef0b18b370e35ce087acdd6b9d0d4a0e1f941c7e08b369248ee09c79d0d1e21edd3eb770935678c3736f1e42b04d4b61e05cf740edcf5f1d0ff7a45daa9b19621df01d0677a925050a3a3efcd718d9cb895bcd5aa3cebaffce1ef7", + "file_length": 455, + "file_sha256": "f57e4b1816a100a71173e30cd017913a8b39deb2a789962d3117f02345d95a9d", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203120353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a72596d474f6e4f524f79713434396e485854347a4a72576564414d6e47715848454364353972784832556a7a324d4a4f494566364d5737783136617831656e750a41393131346c4b36387437434b4d506b633151544d6275675a3938763944526f6467774c7832507743357674586a4871364550704459794f75765255354543520a386c50346e654c4b69334272484a314f7256417747444f524438726f6c7741424f386d43443564574f69490a2d2d2d20577a424c6f54365042742b4f5379324757506e2b6f6764687838747a564c774a6876686455743959354a490a", + "length": 103, + "name": "tlock, round 1, 103 bytes", + "node": true, + "recipients": [ + { + "tlock": 1 + } + ], + "seed": "age writer tlock, round 1, 103 bytes" + }, + { + "draws": [ + { + "hex": "8243cea3c5feeb68bc8a5d12baa3b56a", + "n": 16 + }, + { + "hex": "22e7c92baa6c3e8a26ba01fd02df2727", + "n": 16 + }, + { + "hex": "ba180ef0f30464caa22edc5abf8bfbfa", + "n": 16 + }, + { + "hex": "3d84dd8e2ab33e86de09723f57343648", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b20383339303331363538313120353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a6b446a655953694a6a4150496670464c33396155714b54634e6975343276735639396d564f632b373771323839424967324362343339376141654746797267680a426b62723073516950656d5559537435704c6f4f6e4e3857493745703644527632726d4937504a7368712b5a7574677a79535731513669633549756f487051470a6450784576584a43487a794853747336376d72793731546a326f6d6d302f496375532b3671626978544e6b0a2d2d2d20464e51446c44567a44703073684238326e725a49656b7538755178496b545866757371766a61324434616f0a3d84dd8e2ab33e86de09723f573436481005a050705baa761710839a11d3795640c573974f", + "file_length": 367, + "file_sha256": "80bda9da7a9eb58e9a63d26b9a076624f65dc6c8298d6627e9125766acc5ddbc", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b20383339303331363538313120353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a6b446a655953694a6a4150496670464c33396155714b54634e6975343276735639396d564f632b373771323839424967324362343339376141654746797267680a426b62723073516950656d5559537435704c6f4f6e4e3857493745703644527632726d4937504a7368712b5a7574677a79535731513669633549756f487051470a6450784576584a43487a794853747336376d72793731546a326f6d6d302f496375532b3671626978544e6b0a2d2d2d20464e51446c44567a44703073684238326e725a49656b7538755178496b545866757371766a61324434616f0a", + "length": 5, + "name": "tlock, round 83903165811, 5 bytes", + "node": false, + "recipients": [ + { + "tlock": 83903165811 + } + ], + "seed": "age writer tlock, round 83903165811, 5 bytes" + } + ], + "errors": [ + { + "draws": [ + { + "hex": "35fbfe703a358db295e84f52f2a6223e", + "n": 16 + } + ], + "error": "no recipients specified", + "name": "no recipients", + "node": true, + "recipients": [], + "seed": "age writer error no recipients" + }, + { + "draws": [ + { + "hex": "ddbc98f6be663dc5e7f19ee1e6ae0362", + "n": 16 + }, + { + "hex": "ca374f473698ac0b73917e6f83b102d1ad81d94c246b803c19e180cd6d663cdb", + "n": 32 + }, + { + "hex": "22cd83ff11198b92c0718fa42faab4bd", + "n": 16 + }, + { + "hex": "8439e0f05de55f7f24ebb8a8a4b6c98f", + "n": 16 + } + ], + "error": "incompatible recipients: [] and [\"8439e0f05de55f7f24ebb8a8a4b6c98f\"] can't be mixed", + "name": "x25519, then scrypt", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1WF7V982KYMT88TJGFYJULXYGNUF7SE6ZF0FUK0FTL4QECWDMZEYSTR6YER", + "x25519": "age1sryum0xjsn9qa005895ka9dz78qxfrklr0fdqlxh7hc08xtwcczq0fdsn9" + }, + { + "scrypt": "pass", + "work_factor": 1 + } + ], + "seed": "age writer error x25519, then scrypt" + }, + { + "draws": [ + { + "hex": "23cf1e450dbb5cc2d69172534f8933a8", + "n": 16 + }, + { + "hex": "4d29bd9822d1c012a8161e6efc67fbf8", + "n": 16 + }, + { + "hex": "74d8a5d2a3903aea0810219fb000696e", + "n": 16 + }, + { + "hex": "60200e2bec3c12298d12cd9e00be0292a70c0efbf10f54dea6d69b4ac4f8a3bf", + "n": 32 + } + ], + "error": "incompatible recipients: [\"74d8a5d2a3903aea0810219fb000696e\"] and [] can't be mixed", + "name": "scrypt, then x25519", + "node": true, + "recipients": [ + { + "scrypt": "pass", + "work_factor": 1 + }, + { + "identity": "AGE-SECRET-KEY-1WF7V982KYMT88TJGFYJULXYGNUF7SE6ZF0FUK0FTL4QECWDMZEYSTR6YER", + "x25519": "age1sryum0xjsn9qa005895ka9dz78qxfrklr0fdqlxh7hc08xtwcczq0fdsn9" + } + ], + "seed": "age writer error scrypt, then x25519" + }, + { + "draws": [ + { + "hex": "aa539609b9777613c4307503e66c8bdd", + "n": 16 + }, + { + "hex": "725ecf529d31b247b583da94f74fb69a", + "n": 16 + }, + { + "hex": "d54ae50e9d023fbe96325326fea0c17d", + "n": 16 + }, + { + "hex": "1684e8cf4b31635dc750e0fb5f767c55", + "n": 16 + }, + { + "hex": "01bf6bfed84dcb66e99a0bf933603e93", + "n": 16 + } + ], + "error": "incompatible recipients: [\"d54ae50e9d023fbe96325326fea0c17d\"] and [\"01bf6bfed84dcb66e99a0bf933603e93\"] can't be mixed", + "name": "scrypt twice", + "node": true, + "recipients": [ + { + "scrypt": "pass", + "work_factor": 1 + }, + { + "scrypt": "pass", + "work_factor": 1 + } + ], + "seed": "age writer error scrypt twice" + }, + { + "draws": [ + { + "hex": "36b0119a398f8f7cf65a3eb01d4f5fb9", + "n": 16 + }, + { + "hex": "ad9cb381bbd0abd91421179f6e457e0f278bfceef3821be09eef68315772f0b1", + "n": 32 + }, + { + "hex": "2dadb6b31356d5ff9b4d3e0486d73422c67e4c43511aa30c1c664d15f976e51f", + "n": 32 + }, + { + "hex": "db69d3a9c5a7e13c1ec11edeca193fad", + "n": 16 + }, + { + "hex": "77440aa8e52b5a0133bc3724c2952d8d", + "n": 16 + } + ], + "error": "incompatible recipients: [] and [\"77440aa8e52b5a0133bc3724c2952d8d\"] can't be mixed", + "name": "two x25519, then scrypt", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1WF7V982KYMT88TJGFYJULXYGNUF7SE6ZF0FUK0FTL4QECWDMZEYSTR6YER", + "x25519": "age1sryum0xjsn9qa005895ka9dz78qxfrklr0fdqlxh7hc08xtwcczq0fdsn9" + }, + { + "identity": "AGE-SECRET-KEY-19S0F6EW05NAS0EP4UQPG4SGAQ4XL8NHKMAQWXSZ3PM2LU4WFXLPSVXUJUT", + "x25519": "age1y397rvnmn2rrz6sjcwv7pskprm4ejk3ldwxcaqlelyd836z5wy4qy0yqqq" + }, + { + "scrypt": "pass", + "work_factor": 1 + } + ], + "seed": "age writer error two x25519, then scrypt" + }, + { + "draws": [ + { + "hex": "37a049ed6281725291a7b37653956660", + "n": 16 + }, + { + "hex": "f014774908089aa4c33d2934a694d19e", + "n": 16 + }, + { + "hex": "a97700ab7d269406fa18a06dcc30c1e1", + "n": 16 + }, + { + "hex": "1836ce4aac3bb42867279ea629ad493d0b17fc524f24d90cd96dd8b1a8930a72", + "n": 32 + } + ], + "error": "incompatible recipients: [\"datekeys-tlock-a97700ab7d269406fa18a06dcc30c1e1\"] and [] can't be mixed", + "name": "tlock, then x25519", + "node": true, + "recipients": [ + { + "tlock": 1000 + }, + { + "identity": "AGE-SECRET-KEY-1WF7V982KYMT88TJGFYJULXYGNUF7SE6ZF0FUK0FTL4QECWDMZEYSTR6YER", + "x25519": "age1sryum0xjsn9qa005895ka9dz78qxfrklr0fdqlxh7hc08xtwcczq0fdsn9" + } + ], + "seed": "age writer error tlock, then x25519" + }, + { + "draws": [ + { + "hex": "060d1267c59bf3ce24a17fda022e8786", + "n": 16 + }, + { + "hex": "fca15698a1f518e8f31922a41d657ae3d4d3b81171c7f1e780f7bdb203fac2a8", + "n": 32 + }, + { + "hex": "2049e368dc182f105f3365eb1ea8ee89", + "n": 16 + }, + { + "hex": "e6ddd234ea95833025e00c03f4c61f1f", + "n": 16 + } + ], + "error": "incompatible recipients: [] and [\"datekeys-tlock-e6ddd234ea95833025e00c03f4c61f1f\"] can't be mixed", + "name": "x25519, then tlock", + "node": false, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1WF7V982KYMT88TJGFYJULXYGNUF7SE6ZF0FUK0FTL4QECWDMZEYSTR6YER", + "x25519": "age1sryum0xjsn9qa005895ka9dz78qxfrklr0fdqlxh7hc08xtwcczq0fdsn9" + }, + { + "tlock": 1000 + } + ], + "seed": "age writer error x25519, then tlock" + }, + { + "draws": [ + { + "hex": "33cb16283b4268fb8f220c046bd15916", + "n": 16 + }, + { + "hex": "1684d2e9497f0612c33569cb69ebd664", + "n": 16 + }, + { + "hex": "2a242d84fa0610fb6cd817b7e4152b01", + "n": 16 + }, + { + "hex": "771c5639034754153a0a969d0b18d604", + "n": 16 + }, + { + "hex": "a6b987af6c35831e31d332f8a2cd53cf", + "n": 16 + } + ], + "error": "incompatible recipients: [\"datekeys-tlock-2a242d84fa0610fb6cd817b7e4152b01\"] and [\"datekeys-tlock-a6b987af6c35831e31d332f8a2cd53cf\"] can't be mixed", + "name": "tlock twice", + "node": false, + "recipients": [ + { + "tlock": 1000 + }, + { + "tlock": 1000 + } + ], + "seed": "age writer error tlock twice" + }, + { + "draws": [ + { + "hex": "8942d1d9b6c4fba13d1802f2d6c8d40a", + "n": 16 + }, + { + "hex": "fc47119bd5aeda9f1d2cd8d89cc008d3", + "n": 16 + }, + { + "hex": "c578e15f31bf93d7140a8fbee3a8ae16", + "n": 16 + }, + { + "hex": "7e9d9b87225b2b1f9421716f41b2687a", + "n": 16 + }, + { + "hex": "95ea63f3bfb65ecbd2b780c4f35b0dd8", + "n": 16 + } + ], + "error": "incompatible recipients: [\"c578e15f31bf93d7140a8fbee3a8ae16\"] and [\"datekeys-tlock-95ea63f3bfb65ecbd2b780c4f35b0dd8\"] can't be mixed", + "name": "scrypt, then tlock", + "node": false, + "recipients": [ + { + "scrypt": "pass", + "work_factor": 1 + }, + { + "tlock": 1000 + } + ], + "seed": "age writer error scrypt, then tlock" + }, + { + "draws": [ + { + "hex": "93791c852953ad94e17acc6191271111", + "n": 16 + }, + { + "hex": "4c4019b40e5932b1815050a55e84b3697312cf42371af5f7b202ba6423c3f91f", + "n": 32 + } + ], + "error": "failed to wrap key for recipient #0: crypto/ecdh: bad X25519 remote ECDH input: low order point", + "name": "x25519 of low order, u = 0", + "node": true, + "recipients": [ + { + "x25519": "age1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq5cu47z" + } + ], + "seed": "age writer error x25519 of low order, u = 0" + }, + { + "draws": [ + { + "hex": "203beed5fd55c35dff976709eac77d2b", + "n": 16 + }, + { + "hex": "df1cdb9dd9f18133eddddf07f64294396b5a7307b63e77a3824f4b102385e5f9", + "n": 32 + } + ], + "error": "failed to wrap key for recipient #0: crypto/ecdh: bad X25519 remote ECDH input: low order point", + "name": "x25519 of low order, u = 1", + "node": true, + "recipients": [ + { + "x25519": "age1qyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj7vrya" + } + ], + "seed": "age writer error x25519 of low order, u = 1" + }, + { + "draws": [ + { + "hex": "09803a654e08f8bb4561a2f87138d18d", + "n": 16 + }, + { + "hex": "cb8b91d0579581ab1f7e2558cbe1daddb8abc073c8084c20f6efbb249eed4a54", + "n": 32 + } + ], + "error": "failed to wrap key for recipient #0: crypto/ecdh: bad X25519 remote ECDH input: low order point", + "name": "x25519 of low order, u = order 8, a", + "node": true, + "recipients": [ + { + "x25519": "age1ur4h5lpmgxu2u9jku0a0r87ydtdqnr0tnsetrlvxvgz3vh6fhqqqzyt4v9" + } + ], + "seed": "age writer error x25519 of low order, u = order 8, a" + }, + { + "draws": [ + { + "hex": "f0c27da0c9a8e74a8562a6cc61c6bdbf", + "n": 16 + }, + { + "hex": "1e81f5e7dc2cf8e3a3b171ec20c13ad17426738ca0306b2079447f925a5197a5", + "n": 32 + } + ], + "error": "failed to wrap key for recipient #0: crypto/ecdh: bad X25519 remote ECDH input: low order point", + "name": "x25519 of low order, u = order 8, b", + "node": true, + "recipients": [ + { + "x25519": "age1t7wft09r2zxzfvwsk92eeql0tvzyghxytqwgapkcyf8dm5ylz9ts6wm9s8" + } + ], + "seed": "age writer error x25519 of low order, u = order 8, b" + }, + { + "draws": [ + { + "hex": "d19fdb63ae50a521c1539836aba44d73", + "n": 16 + }, + { + "hex": "0d29ee07847bc3297790cfb44ac2c3a52d91320ce046b18424db60bc4c200ffe", + "n": 32 + } + ], + "error": "failed to wrap key for recipient #0: crypto/ecdh: bad X25519 remote ECDH input: low order point", + "name": "x25519 of low order, u = p - 1", + "node": true, + "recipients": [ + { + "x25519": "age1anlllllllllllllllllllllllllllllllllllllllllllllllals4n2t7m" + } + ], + "seed": "age writer error x25519 of low order, u = p - 1" + }, + { + "draws": [ + { + "hex": "81a8ab1e72e57ef83fc693bcb3dbfcd8", + "n": 16 + }, + { + "hex": "bc23c37f0787005a128e3fb7c16e05764643d6353bdc87216807bbbf319cc6a9", + "n": 32 + } + ], + "error": "failed to wrap key for recipient #0: crypto/ecdh: bad X25519 remote ECDH input: low order point", + "name": "x25519 of low order, u = p", + "node": true, + "recipients": [ + { + "x25519": "age1ahlllllllllllllllllllllllllllllllllllllllllllllllalsn46ayy" + } + ], + "seed": "age writer error x25519 of low order, u = p" + }, + { + "draws": [ + { + "hex": "c595bbcb3c2e3dd4c8d4ca8701716011", + "n": 16 + }, + { + "hex": "713a3ac5ec7b3be77414d0a726eb934f145a85354b70d801beab54111cc98ebf", + "n": 32 + } + ], + "error": "failed to wrap key for recipient #0: crypto/ecdh: bad X25519 remote ECDH input: low order point", + "name": "x25519 of low order, u = p + 1", + "node": true, + "recipients": [ + { + "x25519": "age1amlllllllllllllllllllllllllllllllllllllllllllllllalselrwrv" + } + ], + "seed": "age writer error x25519 of low order, u = p + 1" + }, + { + "draws": [ + { + "hex": "9a81da927a3e56e76020bc865494bb6e", + "n": 16 + }, + { + "hex": "6c415542a20ba4bb4d18c876451994d170210e14e5c755d54e2630eea50b47c8", + "n": 32 + } + ], + "error": "failed to wrap key for recipient #0: crypto/ecdh: bad X25519 remote ECDH input: low order point", + "name": "x25519 of low order, u = 0 with bit 255 set", + "node": true, + "recipients": [ + { + "x25519": "age1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzqqsuwj9m" + } + ], + "seed": "age writer error x25519 of low order, u = 0 with bit 255 set" + }, + { + "draws": [ + { + "hex": "8c36887c8461c4f0a21319ce52f7faf4", + "n": 16 + }, + { + "hex": "e7d729de72dcb0a32fe119ba883cad4d10ebb34b3c59a163d47eb284c587505c", + "n": 32 + }, + { + "hex": "75054569cbbe0d28ad05d77c58adb5b220443b6129a7bf363dcca3c9aee0474c", + "n": 32 + } + ], + "error": "failed to wrap key for recipient #1: crypto/ecdh: bad X25519 remote ECDH input: low order point", + "name": "x25519 of low order after another one", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1WF7V982KYMT88TJGFYJULXYGNUF7SE6ZF0FUK0FTL4QECWDMZEYSTR6YER", + "x25519": "age1sryum0xjsn9qa005895ka9dz78qxfrklr0fdqlxh7hc08xtwcczq0fdsn9" + }, + { + "x25519": "age1qyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj7vrya" + } + ], + "seed": "age writer error x25519 of low order after another one" + } + ], + "generate": [ + { + "draws": [ + { + "hex": "b8846643d21c4d86d884a30fe79542bcd436f6690e2d7442b160a6e1d56bc774", + "n": 32 + } + ], + "identity": "AGE-SECRET-KEY-1HZZXVS7JR3XCDKYY5V87092ZHN2RDANFPCKHGS43VZNWR4TTCA6Q8YA2C8", + "raw": "b8846643d21c4d86d884a30fe79542bcd436f6690e2d7442b160a6e1d56bc774", + "recipient": "age1dvas0mgpp7nrws0t7zwmt8r65dq554uk23h50j3qufsm4g4x8ezs34a4st", + "seed": "generate 0" + }, + { + "draws": [ + { + "hex": "53bf67097574d299330ef66d6058cea8b9a51514b3d5167574f69164d0eeaa39", + "n": 32 + } + ], + "identity": "AGE-SECRET-KEY-12WLKWZT4WNFFJVCW7EKKQKXW4ZU629G5K023VAT576GKF58W4GUSGLDRSQ", + "raw": "53bf67097574d299330ef66d6058cea8b9a51514b3d5167574f69164d0eeaa39", + "recipient": "age1ds2en8n74gyrp5tl082wp2q49gvuwjemcfu3s9wsv3tg6t0scgeqwlj3qn", + "seed": "generate 1" + }, + { + "draws": [ + { + "hex": "1305ce4d3443e240074cdb058b972f4ceb5fe8e37cfbee30ab20fab26c2313b8", + "n": 32 + } + ], + "identity": "AGE-SECRET-KEY-1ZVZUUNF5G03YQP6VMVZCH9E0FN44L68R0NA7UV9TYRATYMPRZWUQ4XPXY5", + "raw": "1305ce4d3443e240074cdb058b972f4ceb5fe8e37cfbee30ab20fab26c2313b8", + "recipient": "age1atmh9366d5h9knj9sncq5fu4r4u8ghhga6z2fjhkteyw5cy2yftq9ma5su", + "seed": "generate 2" + }, + { + "draws": [ + { + "hex": "328cf7a41a2b403d73fc73a773c2477399af09a6eae02945e7debf8d319d13dc", + "n": 32 + } + ], + "identity": "AGE-SECRET-KEY-1X2X00FQ69DQR6ULUWWNH8SJ8WWV67ZDXATSZJ308M6LC6VVAZ0WQVTUNQK", + "raw": "328cf7a41a2b403d73fc73a773c2477399af09a6eae02945e7debf8d319d13dc", + "recipient": "age1ssde79c49ah5shtedlkkhpqg8xaugt97sg42h8kw307nexar3guqhfl7fs", + "seed": "generate 3" + } + ], + "go": "go1.26.8", + "lengths": { + "payload_age": [ + { + "length": 200, + "p": 0 + }, + { + "length": 201, + "p": 1 + }, + { + "length": 65736, + "p": 65536 + }, + { + "length": 65753, + "p": 65537 + }, + { + "length": 4296016056, + "p": 4294967296 + }, + { + "length": 1099780063435, + "p": 1099511627779 + } + ], + "stream": [ + { + "length": 16, + "n": 0 + }, + { + "length": 17, + "n": 1 + }, + { + "length": 65551, + "n": 65535 + }, + { + "length": 65552, + "n": 65536 + }, + { + "length": 65569, + "n": 65537 + }, + { + "length": 131104, + "n": 131072 + }, + { + "length": 131121, + "n": 131073 + }, + { + "length": 1048832, + "n": 1048576 + }, + { + "length": 1074003985, + "n": 1073741825 + }, + { + "length": 5001220704, + "n": 5000000000 + }, + { + "length": 1099780063255, + "n": 1099511627783 + } + ] + }, + "parse": [ + { + "input": "age1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5swz2e83", + "raw": "6d39790161dc50dc2e8af7202a1f0f6984e846dadfc76a051dc795fe36d45869", + "string": "age1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5swz2e83" + }, + { + "error": "malformed recipient \"AGE1D5UHJQTPM3GDCT527USZ58C0DXZWS3K6MLRK5PGAC72LUDK5TP5SWZ2E83\": invalid type \"AGE\"", + "input": "AGE1D5UHJQTPM3GDCT527USZ58C0DXZWS3K6MLRK5PGAC72LUDK5TP5SWZ2E83" + }, + { + "error": "malformed recipient \"age1d5uhjqTPM3GDCT527USZ58C0DXZWS3K6MLRK5PGAC72LUDK5TP5SWZ2E83\": mixed case", + "input": "age1d5uhjqTPM3GDCT527USZ58C0DXZWS3K6MLRK5PGAC72LUDK5TP5SWZ2E83" + }, + { + "error": "malformed recipient \"age1pq1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5sn6yj60\": invalid type \"age1pq\"", + "input": "age1pq1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5sn6yj60" + }, + { + "error": "malformed recipient \"age1tag1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5sxxgzfn\": invalid type \"age1tag\"", + "input": "age1tag1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5sxxgzfn" + }, + { + "error": "malformed recipient \"AGE1D5UHJQTPM3GDCT527USZ58C0DXZWS3K6MLRK5PGAC72LUDK5TP5SWZ2E83\": invalid type \"AGE\"", + "input": "AGE1D5UHJQTPM3GDCT527USZ58C0DXZWS3K6MLRK5PGAC72LUDK5TP5SWZ2E83" + }, + { + "error": "malformed recipient \"age1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tq8wvpm8\": invalid X25519 public key", + "input": "age1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tq8wvpm8" + }, + { + "error": "malformed recipient \"age1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5sqq37wjt\": invalid X25519 public key", + "input": "age1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5sqq37wjt" + }, + { + "error": "malformed recipient \"age19l388n\": invalid X25519 public key", + "input": "age19l388n" + }, + { + "error": "malformed recipient \"age1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5swz2e8q\": invalid checksum", + "input": "age1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5swz2e8q" + }, + { + "error": "malformed recipient \"\": separator '1' at invalid position: pos=-1, len=0", + "input": "" + }, + { + "error": "malformed recipient \"age1\": separator '1' at invalid position: pos=3, len=4", + "input": "age1" + }, + { + "error": "malformed recipient \"age1qqqqqq\": invalid checksum", + "input": "age1qqqqqq" + }, + { + "error": "malformed recipient \"AGE-SECRET-KEY-18CK0YC5ARQA4X05U6J8QJWPRGNAS0S5XCYSM36P0J74QY67R7EDSG9ZVDM\": invalid type \"AGE-SECRET-KEY-\"", + "input": "AGE-SECRET-KEY-18CK0YC5ARQA4X05U6J8QJWPRGNAS0S5XCYSM36P0J74QY67R7EDSG9ZVDM" + }, + { + "error": "malformed recipient \" age1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5swz2e83\": invalid character human-readable part: s[0]=32", + "input": " age1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5swz2e83" + }, + { + "error": "malformed recipient \"age1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5swz2e83\\n\": invalid character data part: s[58]=10", + "input": "age1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5swz2e83\n" + }, + { + "error": "malformed recipient \"age1é5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5swz2e83\": invalid character data part: s[0]=233", + "input": "age1é5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5swz2e83" + }, + { + "input": "age1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq5cu47z", + "raw": "0000000000000000000000000000000000000000000000000000000000000000", + "string": "age1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq5cu47z" + } + ], + "permute": [ + { + "n": 0, + "order": [], + "reads": 0, + "seed": "permute 0 0" + }, + { + "n": 1, + "order": [ + 0 + ], + "reads": 0, + "seed": "permute 1 1" + }, + { + "n": 2, + "order": [ + 0, + 1 + ], + "reads": 1, + "seed": "permute 2 2" + }, + { + "n": 3, + "order": [ + 2, + 0, + 1 + ], + "reads": 2, + "seed": "permute 3 3" + }, + { + "n": 5, + "order": [ + 0, + 1, + 4, + 2, + 3 + ], + "reads": 4, + "seed": "permute 5 4" + }, + { + "n": 16, + "order": [ + 5, + 3, + 14, + 12, + 15, + 2, + 0, + 10, + 11, + 4, + 1, + 13, + 8, + 9, + 6, + 7 + ], + "reads": 18, + "seed": "permute 16 5" + }, + { + "n": 16, + "order": [ + 14, + 11, + 9, + 8, + 13, + 5, + 6, + 1, + 0, + 3, + 12, + 4, + 15, + 7, + 2, + 10 + ], + "reads": 29, + "seed": "permute 16 6" + }, + { + "n": 16, + "order": [ + 6, + 2, + 14, + 8, + 13, + 0, + 3, + 4, + 10, + 12, + 1, + 7, + 11, + 15, + 9, + 5 + ], + "reads": 19, + "seed": "permute 16 7" + }, + { + "n": 16, + "order": [ + 0, + 13, + 15, + 4, + 12, + 9, + 5, + 6, + 2, + 7, + 11, + 14, + 10, + 8, + 3, + 1 + ], + "reads": 19, + "seed": "permute 16 8" + }, + { + "n": 40, + "order": [ + 31, + 36, + 32, + 37, + 5, + 25, + 3, + 38, + 14, + 39, + 19, + 11, + 12, + 35, + 15, + 30, + 16, + 28, + 1, + 24, + 10, + 4, + 0, + 20, + 23, + 34, + 29, + 21, + 22, + 7, + 9, + 6, + 13, + 8, + 2, + 33, + 27, + 18, + 26, + 17 + ], + "reads": 55, + "seed": "permute 40 9" + } + ], + "rand_int": [ + { + "n": 1, + "next": "d7641aa2", + "reads": 0, + "results": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "seed": "rand.Int 1" + }, + { + "n": 2, + "next": "cea430d5", + "reads": 24, + "results": [ + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + "seed": "rand.Int 2" + }, + { + "n": 3, + "next": "d0b06b61", + "reads": 29, + "results": [ + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1 + ], + "seed": "rand.Int 3" + }, + { + "n": 5, + "next": "ff81fe80", + "reads": 32, + "results": [ + 4, + 1, + 4, + 3, + 2, + 2, + 0, + 2, + 3, + 4, + 2, + 0, + 4, + 4, + 0, + 2, + 3, + 4, + 1, + 2, + 3, + 3, + 2, + 4 + ], + "seed": "rand.Int 5" + }, + { + "n": 7, + "next": "791589eb", + "reads": 28, + "results": [ + 4, + 1, + 4, + 6, + 1, + 6, + 5, + 2, + 2, + 2, + 5, + 2, + 3, + 1, + 3, + 3, + 6, + 5, + 6, + 5, + 0, + 1, + 1, + 2 + ], + "seed": "rand.Int 7" + }, + { + "n": 8, + "next": "46f24bb7", + "reads": 24, + "results": [ + 2, + 7, + 6, + 2, + 1, + 0, + 1, + 4, + 1, + 7, + 2, + 6, + 5, + 4, + 2, + 1, + 1, + 4, + 4, + 5, + 3, + 6, + 3, + 3 + ], + "seed": "rand.Int 8" + }, + { + "n": 10, + "next": "90513a59", + "reads": 37, + "results": [ + 6, + 7, + 7, + 1, + 5, + 4, + 5, + 3, + 9, + 2, + 1, + 7, + 6, + 2, + 9, + 5, + 4, + 2, + 7, + 7, + 2, + 6, + 5, + 9 + ], + "seed": "rand.Int 10" + }, + { + "n": 16, + "next": "c0593f6c", + "reads": 24, + "results": [ + 14, + 13, + 2, + 6, + 5, + 4, + 13, + 14, + 5, + 1, + 13, + 0, + 10, + 12, + 9, + 13, + 2, + 7, + 14, + 1, + 3, + 1, + 11, + 9 + ], + "seed": "rand.Int 16" + }, + { + "n": 17, + "next": "54323945", + "reads": 36, + "results": [ + 16, + 15, + 1, + 2, + 3, + 9, + 13, + 13, + 10, + 16, + 10, + 15, + 2, + 7, + 16, + 10, + 6, + 15, + 11, + 10, + 4, + 1, + 8, + 4 + ], + "seed": "rand.Int 17" + }, + { + "n": 100, + "next": "65fde867", + "reads": 30, + "results": [ + 95, + 48, + 8, + 36, + 48, + 56, + 40, + 67, + 8, + 50, + 57, + 35, + 75, + 46, + 59, + 12, + 98, + 12, + 26, + 22, + 66, + 73, + 62, + 75 + ], + "seed": "rand.Int 100" + }, + { + "n": 255, + "next": "dafbd44c", + "reads": 24, + "results": [ + 231, + 218, + 198, + 186, + 51, + 49, + 229, + 108, + 117, + 181, + 67, + 162, + 77, + 211, + 227, + 146, + 105, + 251, + 80, + 45, + 218, + 145, + 124, + 148 + ], + "seed": "rand.Int 255" + }, + { + "n": 256, + "next": "fe035d7a", + "reads": 24, + "results": [ + 153, + 185, + 66, + 237, + 116, + 137, + 96, + 17, + 220, + 88, + 101, + 133, + 124, + 53, + 183, + 93, + 98, + 192, + 168, + 139, + 42, + 7, + 190, + 252 + ], + "seed": "rand.Int 256" + }, + { + "n": 257, + "next": "93eecf29", + "reads": 52, + "results": [ + 243, + 129, + 51, + 121, + 171, + 190, + 97, + 134, + 24, + 168, + 92, + 187, + 72, + 81, + 191, + 242, + 18, + 192, + 133, + 0, + 92, + 184, + 111, + 61 + ], + "seed": "rand.Int 257" + }, + { + "n": 1000, + "next": "961c7e81", + "reads": 24, + "results": [ + 558, + 425, + 982, + 57, + 638, + 876, + 877, + 483, + 416, + 605, + 647, + 442, + 188, + 927, + 469, + 36, + 109, + 348, + 779, + 500, + 653, + 364, + 944, + 282 + ], + "seed": "rand.Int 1000" + }, + { + "n": 65535, + "next": "62dd3270", + "reads": 24, + "results": [ + 53212, + 23833, + 62736, + 356, + 20039, + 59960, + 48552, + 63194, + 16292, + 27667, + 61932, + 1827, + 36864, + 11121, + 61783, + 6676, + 56462, + 60646, + 2800, + 19489, + 28564, + 20034, + 22851, + 23809 + ], + "seed": "rand.Int 65535" + }, + { + "n": 65536, + "next": "25e2ee90", + "reads": 24, + "results": [ + 61215, + 1134, + 40209, + 53075, + 27125, + 17169, + 23838, + 28242, + 41832, + 28378, + 36454, + 25457, + 51360, + 45928, + 22745, + 15081, + 6271, + 44600, + 40709, + 52763, + 42639, + 21365, + 35504, + 5672 + ], + "seed": "rand.Int 65536" + }, + { + "n": 65537, + "next": "07197a0e", + "reads": 62, + "results": [ + 6330, + 37269, + 61867, + 61924, + 38011, + 59121, + 12012, + 53841, + 6680, + 2475, + 34335, + 19458, + 65132, + 44014, + 58066, + 44638, + 9018, + 65468, + 30518, + 10656, + 48816, + 44486, + 44462, + 4772 + ], + "seed": "rand.Int 65537" + }, + { + "n": 2147483647, + "next": "69787176", + "reads": 24, + "results": [ + 1953821498, + 1610665045, + 860284701, + 2007885363, + 1726992299, + 541303746, + 1004213885, + 234887347, + 1553371325, + 758810222, + 1085064212, + 1127294859, + 261161992, + 1436800054, + 393148454, + 406934163, + 1144562273, + 1358969308, + 312543586, + 471987899, + 682008448, + 1712457552, + 1018373197, + 1227332174 + ], + "seed": "rand.Int 2147483647" + }, + { + "n": 2147483648, + "next": "19efe54e", + "reads": 24, + "results": [ + 814017332, + 408436705, + 12515141, + 911417525, + 834105877, + 418342539, + 1367511616, + 2057796696, + 874059916, + 1233621367, + 496582336, + 298353907, + 1538520607, + 630971689, + 638143396, + 1497532899, + 1636178625, + 921823853, + 1897970489, + 1416867960, + 864593994, + 1551452535, + 1905129986, + 2001845299 + ], + "seed": "rand.Int 2147483648" + }, + { + "n": 4294967295, + "next": "5c311580", + "reads": 24, + "results": [ + 535033687, + 1119850738, + 2578729599, + 4036402583, + 1299224218, + 4006130910, + 4161464044, + 3577850666, + 39859977, + 339456922, + 2247644136, + 1468600166, + 2506557933, + 2634639506, + 3825571866, + 842979453, + 1953130734, + 3851069660, + 623319842, + 3564674898, + 2836171773, + 3720306395, + 1023286849, + 1348176429 + ], + "seed": "rand.Int 4294967295" + }, + { + "n": 4294967296, + "next": "6c8c8423", + "reads": 24, + "results": [ + 2133763047, + 221013904, + 66085701, + 3669188063, + 4092111412, + 1548395288, + 2202156111, + 1483878898, + 2256944894, + 917109306, + 2058949628, + 1272088366, + 2291826127, + 783005576, + 82999941, + 887549640, + 1072679315, + 697502977, + 3137804610, + 1304588987, + 3968160360, + 2130932439, + 4243399999, + 782559295 + ], + "seed": "rand.Int 4294967296" + } + ], + "seeded": [ + { + "fills": [ + 0, + 1, + 15, + 16, + 32, + 63, + 64, + 65, + 200 + ], + "hex": "98c37c1a7542eb45daa0d48d9c1adee0f41178a94d590b96ae0f9595e1c3008fbd116fd1892c0998d85a974f5b261248ea8e891e6ce61d5790a1a49be7c5440e02dd2ff0abcd04e2e191fdc2235a14eed7ce2350b73a16b3b7ebcc8a9ca9b59594d4f3310e304d4c9ed667f82592db80f66408c3eca9f5e2a09d73f13c837b793a88f4d340aff24a6eb715d09ace6d34e5abb6369e1800f9da8f63909f869d92edca517412de808ea59c3cf397a7bfbca092760d5fedc4c2925d1272d956d9ba6d07f9c585c40ba0927943388bcd5f87870a2e9c291c28ef9ea9bcb1ed0abdd1842148bca949e727e86010a7ca662ac8129f5c0ffb1a7893b736c801945e63fbcd32eff6a8b5c3e05b6a55b2773cd9d614c5e6931d35ad52fa3b1609de7d83fa8c5de4c25d5876df89caa372cdc2e5f7ce823b6ae48686ee2fc638a46a5eb40ef146b278d08b7484abaaa6028f7c8374b8f169b01acee7e513d650a96c04576cbf7f4cabce68f94bcd2d982e42b19d524bf0d9be861412d7a573bf2647b6a83fa25091e6418d3fa236959df7aee8ed1144c505a99277ab0fe80059b91f90be08288071c493554347edd2d250985ae907c102514bbe1fb0b4c77dfb8cd6fd11256701fba2bceeb1c5", + "seed": "" + }, + { + "fills": [ + 0, + 1, + 15, + 16, + 32, + 63, + 64, + 65, + 200 + ], + "hex": "205e842478fd831e94db2129839eef4e947aa0fb795f900e7b2813c09d2a0e6f78a67c44be785a1fde0306d9b322047eefc7f3dfdff06b3f117d07e3053a6968fd7b188574f9849e575046f4d27e1b6fdf3d8b2b50c0c2f1aacefd41387c76cd298f030983db9010c5282f9bf0eeab693176108b6c5f2759fde772ec602a78099ed8cd09eb28c7249f7729f34c8156ac320b5f7fcb7ec8068650466759a12081e239fbbc76c13e02127e02e08984c5625979e1661cf29437fd60dbc420485d572bfec82d2668a310f06a3dc78cd05a1f24a598199a34a23004cdfb97671d6ea7684674cd87a6b67c066e3b35103e640bbe23336de1fdd9f882b986c55a4c3a84d1399de056c4f92298c2c10be76374f1a5afb9bed6daa593ebaaf20629e44521cc0bdde42f71c55c3d065087b103a8b6547b6e2d7fccb15094dd5a62e4c07947d11908570376e5c2ba5005ca99852d12eef6f5e2cefe8c192fb2d689eade856d698d9a40ef20d8af2a9f914c2fa83225bd987874b039b99c738abe0407fa0500f36909842004ecacf9b6b4c779fef38f303e825045e44a64c0c20003f8c5689c3a9b0b43feef0596b0af364606d6b8c05d6123ef59f21376b1ce7aa0077dc7810da4b8a849ada963", + "seed": "a" + }, + { + "fills": [ + 0, + 1, + 15, + 16, + 32, + 63, + 64, + 65, + 200 + ], + "hex": "07f133f93b0b6f887771a962652331047361e5781ae8ba2e4c9bf509d3a25eb9aef0c2a10a4452a6439d673cd56dee3fc42ab803a3feeab0b5156cf8ab08a7495530e4f01e577f9be9fe054faf404df3b95913b9825a6c763862bdbd0253fb3f9d31554c57a4359c1931a8e50f824a52c2b4ceba28b47d982f3b3d104a23813d8082b110fa0b6f2d7f5f953a50fd6371eb99466b959cde3ebdd0ffe982010bb6f035e6e036cb30002ec9fb69cdfd7fd61f86c1a8cb94a9bb4f2d6e9fdd9f7666edfb15a9c9f10e1aa4f908e5246eac093f864fb75e0381d880b2cab50c733b08843932a77a52d5af1916d90ebbdaf3e63ba71f9fef78fa3f4f2c4a24694d7224d1ac91c7e750a40dce0cb00234e6325614f5ab9d847aa3751cd9f7e619456ff35a1442c1783f48c909c552178a1560dc3250f1a228d5a59386b1284557a290cbaa2cd7dd16936cd9efd901bc8212447d05f2b7b48e270cdc21516c9bd54aba9bd0ebe1b48fea06e0d8c477d5b07da6623cbfd388e62bb39017420caf33e692df73e2806fdcfa8b0448abcfa1f7f1e3aaea4ed42d9dc43a74945211f80e7a7639b0344047d28f44141a32d8441db526d8c70e058fe496aa7aaa6e2c9ec332afa4b1fb3eeb88a5e859", + "seed": "age writer" + }, + { + "fills": [ + 0, + 1, + 15, + 16, + 32, + 63, + 64, + 65, + 200 + ], + "hex": "32be5b9d2e9c29ffa6543f8bc24f6097106fea75aa73a94be3b5b12e049b18291c0d659775497434c5692271f75d8ac81788174b887c4a088863e4afaf785d53b1f709bc5301fa9fdae2551645920bf8525c335806f1559d61c861a2c4bcad172e12b07c73c2b7205ebbe37519f3fb1b26466630357b62a613676d2900837cda091d1f3d0d3e9a43e9afa0ecdc32a82692945f07469d51110a74172de2193a3fc32222de357af194715c6aeff6ebfead5bbb857e22ca679cb95791e890648a45e11236e023cc7313bbadee34c385f64394391c6f72e8ad37274f6bd47ade7317e8e435e8fffea6d79382c85460a7c0f4cdc3f17f1f54629480728833be137019546412f757b6cddbef5155dba23cdc9345d44733da881ab1a76d3f9bd49a34acc917a295c2fdae500a7362d8195e15ba0c763bcc2a82eefcc0718a326932855c1c757052858f6d625f00e8c57c8faccadbd9245fcd5a0df2cf43ad5bf0490fb747b388c3079a6cac7c328ded17959140192e109e747e7e0c66e7b2bd7a0fc8df8b0afa47932dd4096b7d0bc421dc6a687d86ef1142fd79f4cb60d07ab417e22cd10d06ecdd2b4fdf324d87e5dd6f468d676b37f1dd2d1fee1d18fb072b90c2a7a936f1eb359e80c4", + "seed": "seed with spaces and ñ" + } + ], + "source": "c531e936fa8188a4aab01575607cc85d4f5d4fa4", + "stream": { + "close_after_close": "stream.Writer is already closed", + "empty_write_after_close": "stream.Writer is already closed", + "write_after_close": "stream.Writer is already closed" + } +} +'''; diff --git a/test/vectors/age_writer.json b/test/vectors/age_writer.json new file mode 100644 index 0000000..ce39355 --- /dev/null +++ b/test/vectors/age_writer.json @@ -0,0 +1,3195 @@ +{ + "check": [ + { + "raw": "c57bcd8492d2eac97182e68c4cd535fb671ff7250e4300a9ecbb7b2345a48c60", + "recipient": "age1c4aumpyj6t4vjuvzu6xye4f4ldn3lae9pepsp20vhdajx3dy33squ7m9a8" + }, + { + "raw": "a83c2c90d3656327a9100202d4b90f7c3961f5a549f13fad322e55738a631c00", + "recipient": "age14q7zeyxnv43j02gsqgpdfwg00sukrad9f8cnltfj9e2h8znrrsqqn7hweq" + }, + { + "raw": "d55ff247813583aa0f6cf8b37394ecf048aceb7405642141b02e0c83769e035c", + "recipient": "age1640ly3upxkp65rmvlzeh898v7py2e6m5q4jzzsds9cxgxa57qdwqg59kpm" + }, + { + "raw": "342e6b6ea9d6ab816e31f6126f59df42b455ee1cadbe503eeece7101658efe7a", + "recipient": "age1xshxkm4f664czm337cfx7kwlg269tmsu4kl9q0hweecszevwleaqxx82t4" + }, + { + "raw": "9d534ee22b3fed75f52fed8404b1a53bfda3d90d67cc357a9775f1a47ae11b45", + "recipient": "age1n4f5ac3t8lkhtaf0akzqfvd980768kgdvlxr275hwhc6g7hprdzsl274v5" + }, + { + "raw": "0900000000000000000000000000000000000000000000000000000000000000", + "recipient": "age1pyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq8r66x" + }, + { + "raw": "0200000000000000000000000000000000000000000000000000000000000000", + "recipient": "age1qgqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqc54sr4" + }, + { + "raw": "ebffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f", + "recipient": "age1a0lllllllllllllllllllllllllllllllllllllllllllllllals8ppj25" + }, + { + "error": "agewrap: recipient age1ahlllllllllllllllllllllllllllllllllllllllllllllllalsn46ayy is not canonical: u is not below 2^255 - 19", + "raw": "edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f", + "recipient": "age1ahlllllllllllllllllllllllllllllllllllllllllllllllalsn46ayy" + }, + { + "error": "agewrap: recipient age1amlllllllllllllllllllllllllllllllllllllllllllllllalselrwrv is not canonical: u is not below 2^255 - 19", + "raw": "eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f", + "recipient": "age1amlllllllllllllllllllllllllllllllllllllllllllllllalselrwrv" + }, + { + "error": "agewrap: recipient age1lllllllllllllllllllllllllllllllllllllllllllllllllalsjzdrvv is not canonical: u is not below 2^255 - 19", + "raw": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f", + "recipient": "age1lllllllllllllllllllllllllllllllllllllllllllllllllalsjzdrvv" + }, + { + "error": "agewrap: recipient age1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq5cu47z is a point of low order: the shared secret would be zero", + "raw": "0000000000000000000000000000000000000000000000000000000000000000", + "recipient": "age1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq5cu47z" + }, + { + "error": "agewrap: recipient age1qyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj7vrya is a point of low order: the shared secret would be zero", + "raw": "0100000000000000000000000000000000000000000000000000000000000000", + "recipient": "age1qyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj7vrya" + }, + { + "error": "agewrap: recipient age1ur4h5lpmgxu2u9jku0a0r87ydtdqnr0tnsetrlvxvgz3vh6fhqqqzyt4v9 is a point of low order: the shared secret would be zero", + "raw": "e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b800", + "recipient": "age1ur4h5lpmgxu2u9jku0a0r87ydtdqnr0tnsetrlvxvgz3vh6fhqqqzyt4v9" + }, + { + "error": "agewrap: recipient age1t7wft09r2zxzfvwsk92eeql0tvzyghxytqwgapkcyf8dm5ylz9ts6wm9s8 is a point of low order: the shared secret would be zero", + "raw": "5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f1157", + "recipient": "age1t7wft09r2zxzfvwsk92eeql0tvzyghxytqwgapkcyf8dm5ylz9ts6wm9s8" + }, + { + "error": "agewrap: recipient age1anlllllllllllllllllllllllllllllllllllllllllllllllals4n2t7m is a point of low order: the shared secret would be zero", + "raw": "ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f", + "recipient": "age1anlllllllllllllllllllllllllllllllllllllllllllllllals4n2t7m" + }, + { + "error": "agewrap: recipient age1pyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzqqyr3apl is not canonical: bit 255 is set", + "raw": "0900000000000000000000000000000000000000000000000000000000000080", + "recipient": "age1pyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzqqyr3apl" + }, + { + "error": "agewrap: recipient age1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzqqsuwj9m is not canonical: bit 255 is set", + "raw": "0000000000000000000000000000000000000000000000000000000000000080", + "recipient": "age1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzqqsuwj9m" + }, + { + "error": "agewrap: recipient age1c4aumpyj6t4vjuvzu6xye4f4ldn3lae9pepsp20vhdajx3dy3nsqc6fzx7 is not canonical: bit 255 is set", + "raw": "c57bcd8492d2eac97182e68c4cd535fb671ff7250e4300a9ecbb7b2345a48ce0", + "recipient": "age1c4aumpyj6t4vjuvzu6xye4f4ldn3lae9pepsp20vhdajx3dy3nsqc6fzx7" + } + ], + "constructors": [ + { + "error": "passphrase can't be empty", + "name": "NewScryptRecipient of an empty passphrase" + }, + { + "name": "SetWorkFactor(0)", + "panic": "age: SetWorkFactor called with illegal value", + "work_factor": 0 + }, + { + "name": "SetWorkFactor(31)", + "panic": "age: SetWorkFactor called with illegal value", + "work_factor": 31 + }, + { + "name": "SetWorkFactor(-1)", + "panic": "age: SetWorkFactor called with illegal value", + "work_factor": -1 + }, + { + "error": "agewrap: round 0 outside the range of datekeys:quicknet:v1: ERR_DATEKEY_INVALID", + "name": "NewTimeRecipient(0)", + "round": 0 + }, + { + "error": "agewrap: round 83903165812 outside the range of datekeys:quicknet:v1: ERR_DATEKEY_INVALID", + "name": "NewTimeRecipient(83903165812)", + "round": 83903165812 + }, + { + "max_round": 83903165811, + "name": "the last round of Quicknet" + } + ], + "description": "age files that filippo.io/age v1.3.2 and agewrap write while crypto/rand reads the keystream of SeededRandomSource (ChaCha20 under SHA-256(seed), zero nonce), with each draw; the texts of the errors of the writer; and the lengths of tool/age_writer_go_vectors.go. The plaintext of n bytes has (31·i + 7) mod 256 as byte i. A case marked node false is left out compiled to JavaScript.", + "encrypt": [ + { + "draws": [ + { + "hex": "c3067f2599d14b821909c86175786a9d", + "n": 16 + }, + { + "hex": "34b1c4520c87f170ce0c846a30883f1f664302a81246753875aa54023f17b5ed", + "n": 32 + }, + { + "hex": "aff407f2f187287bf2f454931607ebf5", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139206454613766516d305079546a63526a574f4843572f725643512b69756c612b527543596262435a2f7241590a693252686d2f2b572b58434b4a63395361432f663136494476756372483875397750705167584230505a300a2d2d2d206f412f4a536f6a71477a6961792b6c4c4a43625437354f51544a4a3072484f39414e756d4f724c7a544b770aaff407f2f187287bf2f454931607ebf579e19e3fa1ba6d0aa45b0f95cb937480", + "file_length": 200, + "file_sha256": "662586ddbdc5217ace2090aba40c8e57763002a5324b87c4aa8739cf37e29888", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139206454613766516d305079546a63526a574f4843572f725643512b69756c612b527543596262435a2f7241590a693252686d2f2b572b58434b4a63395361432f663136494476756372483875397750705167584230505a300a2d2d2d206f412f4a536f6a71477a6961792b6c4c4a43625437354f51544a4a3072484f39414e756d4f724c7a544b770a", + "length": 0, + "name": "x25519, 0 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 0 bytes" + }, + { + "draws": [ + { + "hex": "556bb3913be97495c1e8a1c006ecb25b", + "n": 16 + }, + { + "hex": "4c7d297ff297caa9e85743ab007a28a68b5af0d654d31737c16785d6356ae8a4", + "n": 32 + }, + { + "hex": "f5241c0eec9645e2075d13963431fc6f", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2058323535313920364971304b4a5a36437867396e486c5a372f4d4747495a63366675486c545a78674f465646704c735758490a4b4b427a6774796950556a7759754342564a4b684d676576675262627248452f584356494f654c776a38730a2d2d2d20616945386f6f4d5352335041677479304e386b786159494d433148533851684a5753735036454b443665730af5241c0eec9645e2075d13963431fc6fd72806701e85f58f769297cef61e533148", + "file_length": 201, + "file_sha256": "2d4a56ce91ced04d077c77d74d9ee4f1ce28c52678f54a10c5894d0767827d78", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2058323535313920364971304b4a5a36437867396e486c5a372f4d4747495a63366675486c545a78674f465646704c735758490a4b4b427a6774796950556a7759754342564a4b684d676576675262627248452f584356494f654c776a38730a2d2d2d20616945386f6f4d5352335041677479304e386b786159494d433148533851684a5753735036454b443665730a", + "length": 1, + "name": "x25519, 1 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 1 bytes" + }, + { + "draws": [ + { + "hex": "994edb0dc389eec2a982b6c07e68da68", + "n": 16 + }, + { + "hex": "d696ab652490f646a5f6f4434c4f5d4688b861188a5435169849dbd15e6e4bbe", + "n": 32 + }, + { + "hex": "060f55189304285ea8641a1f6607137d", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e205832353531392048725665385079516f7534694e4d5067426f30394e346c6e417a437844612b7334716f6b514555454d41450a665772566e47344b7a3730393732646f6d696f69785331714b635a4a706e65433977622f63702f4678546b0a2d2d2d20754c4c796536566b2b7338542b484664473230532f782b616d4b2f4332416e793178736d45644a4f6e53510a060f55189304285ea8641a1f6607137d69fa832bd19c93f7a7eb4c6b69f37731b634", + "file_length": 202, + "file_sha256": "7fda64b5016b43e729d50845159f56e37fa471383a624ffac3c5dc8c78cab546", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e205832353531392048725665385079516f7534694e4d5067426f30394e346c6e417a437844612b7334716f6b514555454d41450a665772566e47344b7a3730393732646f6d696f69785331714b635a4a706e65433977622f63702f4678546b0a2d2d2d20754c4c796536566b2b7338542b484664473230532f782b616d4b2f4332416e793178736d45644a4f6e53510a", + "length": 2, + "name": "x25519, 2 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 2 bytes" + }, + { + "draws": [ + { + "hex": "49b269f5e5d5cc0d62064a135439c250", + "n": 16 + }, + { + "hex": "45563accaa3c6632b9f11a5ae15865d715ddea2d2b251921ac62950cdd06600d", + "n": 32 + }, + { + "hex": "bd56ff93a945d6292a7fd3242758f154", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139203271306c414c2b66586a55304264784573367778792f64636174646c78424c4e65516d504b4542515a54730a7856447437367a37333163422b464f70546b4a4e63705a414641396e6a616a3466767477476d622f6b61630a2d2d2d202b2b774e6b567545594c665061426b796c7267705a2f676154505a34576c6859715465766846486437466b0abd56ff93a945d6292a7fd3242758f154230ec32f857aa59a38b65ac8c507bd6231e38ab21924d31f19236a96336559", + "file_length": 215, + "file_sha256": "143ca09a27d4a1600786098889f43d8cf2004a2533e31abf97fc800e4bc61aeb", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139203271306c414c2b66586a55304264784573367778792f64636174646c78424c4e65516d504b4542515a54730a7856447437367a37333163422b464f70546b4a4e63705a414641396e6a616a3466767477476d622f6b61630a2d2d2d202b2b774e6b567545594c665061426b796c7267705a2f676154505a34576c6859715465766846486437466b0a", + "length": 15, + "name": "x25519, 15 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 15 bytes" + }, + { + "draws": [ + { + "hex": "f9076b11a6b2b5f59aa23561ed0b56c1", + "n": 16 + }, + { + "hex": "6f95581bc93b29f47a83c6424f68b5439204162a7ca8bdca85111c08b23802f6", + "n": 32 + }, + { + "hex": "f09ecda860abac95fe83a49e5a6fab80", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2058323535313920345265796e457a733637344a6b695265562f426c33776753747443657450426171646a31766731496648380a71664a43435a476c6c59525047374b50714e73545430417961313835506634436a48667a4f78626c6d46670a2d2d2d20794d32366849736851394e455662452b4a727836527658536e3552494435702b64334e39554e6f6c72396f0af09ecda860abac95fe83a49e5a6fab8030e0199144acf6bbb51a1bb02cdad2708e35a12a02f26bad9e2dd34ffe8e1c75", + "file_length": 216, + "file_sha256": "47803068927ead73b93468e1f37c696190da5652f158ea95a4e83e3bb94ba736", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2058323535313920345265796e457a733637344a6b695265562f426c33776753747443657450426171646a31766731496648380a71664a43435a476c6c59525047374b50714e73545430417961313835506634436a48667a4f78626c6d46670a2d2d2d20794d32366849736851394e455662452b4a727836527658536e3552494435702b64334e39554e6f6c72396f0a", + "length": 16, + "name": "x25519, 16 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 16 bytes" + }, + { + "draws": [ + { + "hex": "6196b9b3bf01b64c8af237cee2e80034", + "n": 16 + }, + { + "hex": "8f0491dfa5695d86969884f0c7b58c5245ac7583d905aef6ea073eda207a2ae6", + "n": 32 + }, + { + "hex": "097f2d9923f073b57126cd9aee6d9be5", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2058323535313920484c6e424d7151514d714d655430774161696b517046555469517a7a6131434e5a4f486a376a5130396a490a763331476b656d5363524d30552f396a347532522f725336586c61434e7368534a6a796a6737522b6e65490a2d2d2d206d356149507135472b5668762b312b5433676e47396c2b4d714d6e76553948693872733079426f4b7676550a097f2d9923f073b57126cd9aee6d9be514d9cee4cbc22a3a7f5e059967c4b9a543dc3d7bb5c92191a312ac5816468bef5e", + "file_length": 217, + "file_sha256": "751b36e770416b2e4a34438b5024e30ae014c5d5c6ffe38725eba0c80775ee07", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2058323535313920484c6e424d7151514d714d655430774161696b517046555469517a7a6131434e5a4f486a376a5130396a490a763331476b656d5363524d30552f396a347532522f725336586c61434e7368534a6a796a6737522b6e65490a2d2d2d206d356149507135472b5668762b312b5433676e47396c2b4d714d6e76553948693872733079426f4b7676550a", + "length": 17, + "name": "x25519, 17 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 17 bytes" + }, + { + "draws": [ + { + "hex": "57492ccf419974179bb8d440d78c909a", + "n": 16 + }, + { + "hex": "3f41ac08bda94349ecb9cd158353b48b8e1c23172a98383ff0dd6db303ac8afb", + "n": 32 + }, + { + "hex": "853ae7a3c8b50da99b6b80cfa05e3f5f", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2058323535313920745746745679676379422b3550502f2f54453350763645376d31653057496f634b317573493064556d48670a6371626e5152485a794b30473357494a594737763751464267357a5433715730576c4f70587470363059380a2d2d2d20343863524f4c7a36595356446656353132486f69713568326b5a6c424c386b51486334635a5076597433410a853ae7a3c8b50da99b6b80cfa05e3f5f44d717ed03f4c77deede9daf1da9a90677655e87f63a944edab2074ae5c6712c18f7458d579f6aabc02ad136d611bf9cc760a23c6d979945d76dc075d2b1066e4ccb57259aaa375cee611fa39a010d18269f25f56910c1bb5b6de90e8796f72055fcb293adaefd104a45bf3ed791784e9f3a6106", + "file_length": 300, + "file_sha256": "2c4996a3b059a7a36875e8edf5a504713ea6d6c03892a083c8ae990553cae71c", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2058323535313920745746745679676379422b3550502f2f54453350763645376d31653057496f634b317573493064556d48670a6371626e5152485a794b30473357494a594737763751464267357a5433715730576c4f70587470363059380a2d2d2d20343863524f4c7a36595356446656353132486f69713568326b5a6c424c386b51486334635a5076597433410a", + "length": 100, + "name": "x25519, 100 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 100 bytes" + }, + { + "draws": [ + { + "hex": "56a51c14e06f90fca0f3183d8453bca1", + "n": 16 + }, + { + "hex": "10fd5edf6d9331f9f4eba61b91c5a0d59ef5c91147d01c0e88b7eb2896672828", + "n": 32 + }, + { + "hex": "777f61ec13318fb52a318e64419d6e46", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e205832353531392045306c556a6c2f397461476b6d41596e657559654c5466374a664749426b7441527759496c304d4367486b0a4962477041596d387353526572544f5a4234726c5855564c446b50775a3475385463395a427664384833450a2d2d2d204d48466574452b6b354c42433277664d4a4a795847394e35342f2b6143717748787a6d56384e532f616c730a777f61ec13318fb52a318e64419d6e466eaaead14bc204136e72562c0f9f23d9f18d5af552b4cfd38dc02b473734423a2c57fc936f6004f397dc8128ee37d9b727ce493922d6e88b7fc45b2d1bde83083d40e6ee1f8fc48ab2edfa6942a33535125c917bc67ff323bf684f90833a86e2bb7c94c76bf5ed4578e3addb0170ee78e9cf2912818829", + "file_length": 303, + "file_sha256": "02404ccde625babc48a659f273d3bd06c31e94d8c2616306a1336199d779d789", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e205832353531392045306c556a6c2f397461476b6d41596e657559654c5466374a664749426b7441527759496c304d4367486b0a4962477041596d387353526572544f5a4234726c5855564c446b50775a3475385463395a427664384833450a2d2d2d204d48466574452b6b354c42433277664d4a4a795847394e35342f2b6143717748787a6d56384e532f616c730a", + "length": 103, + "name": "x25519, 103 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 103 bytes" + }, + { + "draws": [ + { + "hex": "9327fee9cafc0355db415c3e987a9b5a", + "n": 16 + }, + { + "hex": "38a79a4c9823244eafff45637bcf308e2df6c61c79bc47dfbd1ce7ecd0afaabb", + "n": 32 + }, + { + "hex": "e22a504dfdafaa34d1ac3e5696860c92", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e205832353531392059576c65576f592f3454704c2b51755535323063367a3858684741475a583968506e36613667684a4942340a79784c616c6d643943455168546b3059425244527035616a4a2b703270536c5261326c5a49345a315845630a2d2d2d206a41637751384444486e6241756c536f584d345639506e427842454c4657505356356c4159614d6a7073550ae22a504dfdafaa34d1ac3e5696860c928490d351d643fdb1bc320b16a1ef8ca65801572a455f2f64cd2530f717d4b471b07f77a3fb24f76164053e125cb4b6089558951a0ab48bc8490c1ca8cd3177cda3ffedc3381e6f63c3044a4c8c8888d95682937931042165bd4fdd3f88868da33c43deafdf7e323cfaa6ae1da19f11b0829e9f3c8a9f4965d87f47691145cd4aa04f9e4d6669df49102b581fb8f86d866e07dccc8053f946be9aafee990a798d765679b97fbcba8e49ca385e9e3775cea1620f2cf3940ef71ba5fcc9f2ed54513f5c401d013f9124b6e1abe55a02adb912722b60e9ad14466a37ccf57c425c7389f55cbda26e1443a47efdc8ce87fcbc7976749fdf5eb267ed3038f1e8f3298f13826c976fc91d2db877fa65e1b5091932a37603681429a530c3c5294a12c28615ee9be633c2856ae996aa8c70685b0c28be7b6c7c7f8db0d1118bd3a298b89003e0ccf9d12d3722464b35b9b010d308c006542754b59c88f2593a832dc9e13f8f50a855783d1c1f009dca96ff10915ce70de7dae15b0e20cd950870ba6446bdc9e123801f87771f98b69e1a6ebd23dd7e5f99d8c76709900d649dc68644b9cb9ac2a0936f57dca6f2cc962de773fa708de759ebd0d3cf5215786e0aceca2a602131605a5dee12a269f52098a6f67a4dd8a1ef6becb9b665f78612b330bb0ca37513838303323e806175769163a1133a63aff561e6435da8cfdb1e294a400a796bf2f197d78247fd31f92f87cd901f180a1ad84ad1ce5c09389539a99c3a4c057addfcc9c8f5d3404fa17412907c5582800af8b6ebc79f19fd8304bde2a83b5faf00554cc6849a4b93a027a51b7f5df15730defd4e0912c7dbfd69d52ef2416b80ab144849df4a80cf1d8faca5535620c4c39b2a72f72958debd2511fc6a3d71e63d10ceef1467d6fef32952abf9d05aa02ae8ac98e8d03e186284a24ada8380db04d67b8670d8a9e9aee5636c6277ae55dfa7fd5858513832139eb100dad3aed3ca428bf83144e7ebc7b75ce8af1caa017acefbced3438dde0eac9408c3e274246bbdcb0be98dc4f42c9b9c35e6d438842c3605ef874e2c32903756bcfca1f9a3c5966528cb5b6b065662c96f084d2c32c725d0f73bea2750e396c82f94dc78f95c3adaee8aa516e369b346ccf3b8351fdbb1c787d894ac20aa12dafbbf1e9856265856b6780bebc19e3ed7322463cce1bb41124be247189d571f72d078f78c1ff793243061e48d47964e045e4d98b4173d6096da34afecb39191bac80952695b465f041d5b812ad6db0d5171a4168bdfd13d31f4819daf7994df7ed8397e6fe4c3ecdc7be1841ee52af3f86707dc93451ae6b51ca03d06122bf04a217cebcf47d89f519e65f1f8042efaa1d5b3ff92036d54d15981e009f4fa0a92d3d873806452e88e60ffdd78fde8c40ea4dd16c6a080ed82ee435006", + "file_length": 1200, + "file_sha256": "4021b87a57800be39ea58f3833747ac40c260f3a4e131780e7b3ff9df0d6a93f", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e205832353531392059576c65576f592f3454704c2b51755535323063367a3858684741475a583968506e36613667684a4942340a79784c616c6d643943455168546b3059425244527035616a4a2b703270536c5261326c5a49345a315845630a2d2d2d206a41637751384444486e6241756c536f584d345639506e427842454c4657505356356c4159614d6a7073550a", + "length": 1000, + "name": "x25519, 1000 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 1000 bytes" + }, + { + "draws": [ + { + "hex": "b0d6c4df579466f1ee355469df0ad603", + "n": 16 + }, + { + "hex": "b6b578da295237947c54c698ef83012bd5434b0b5c92957ef47b144fa70c31a6", + "n": 32 + }, + { + "hex": "9b47bb736fb4e2db860d9c8fb0c5761c", + "n": 16 + } + ], + "file_length": 65735, + "file_sha256": "5cd1b64837384f8ef7518fbd57e3d87c35881487a24980458631be16820428b0", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e205832353531392071566c66454d494c627867382b6e4d425638784a57354834682b68782f51556e4d3079434b3751516c46770a727044466e666141367153517666353267354d30646258705a72547966662b53763853486c594a376c71630a2d2d2d204e317457753932386f7834797667316469594e66594c553972436b44434932363455625253554e68336f340a", + "length": 65535, + "name": "x25519, 65535 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 65535 bytes" + }, + { + "draws": [ + { + "hex": "85e2ce1f803fa4125958d4beec225931", + "n": 16 + }, + { + "hex": "406988233cbc758e4c5121d1e5218eb869c5eb7ea81eb7864d582ab20bc87c9e", + "n": 32 + }, + { + "hex": "2b0447d28c1f405b6505b81d40083081", + "n": 16 + } + ], + "file_length": 65736, + "file_sha256": "8bdf837a97f1e24b679ee2a9ca4ed6009c8cbcd692e6b721d8ceb278826a54c5", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e205832353531392070723645644b594874476137784a6f67505030434e7a3564666b2b526c44526d4e5451564174376561314d0a4731466a306f63436a33575572442f744a61424e59385a58444963517751355766353956386f6648654b550a2d2d2d2076425152356e775770652f6d69487a7a663047362b4476455972456672383678484b7333666237696c4b6f0a", + "length": 65536, + "name": "x25519, 65536 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 65536 bytes" + }, + { + "draws": [ + { + "hex": "5dff4e486a0b4a9684e23318bd739286", + "n": 16 + }, + { + "hex": "1547c3f1924e3f8805c1fb1d28b5bd7ac9c44b76568d315530b4ded59747b026", + "n": 32 + }, + { + "hex": "332ac61baaae132687c06799bb9abfe0", + "n": 16 + } + ], + "file_length": 65753, + "file_sha256": "f180f1dc52726230845098f0289ff372bc8bee15ae0023190fc31f646143f367", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2058323535313920306b48486c694d465853646d496e774f4a4a3371722b4c386c4e70486a5961657846735532416f41306a730a4b5558715333766f32584f6a63613678505a636f6d4a62783263656f49777338774d4e6368422f65444b510a2d2d2d204f426e6f354935553849716d336f34594e4e332f39596f3462647a754e6f642f57395a5362746f7344344d0a", + "length": 65537, + "name": "x25519, 65537 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 65537 bytes" + }, + { + "draws": [ + { + "hex": "f63eaa7382ba80f0bd148c54402fb78a", + "n": 16 + }, + { + "hex": "a058d9e5845ae6365251c422c61741662fea477bd9ad34ed4580f071280cbe0c", + "n": 32 + }, + { + "hex": "da179c826d97a75141aa831a6ade2991", + "n": 16 + } + ], + "file_length": 131287, + "file_sha256": "025a44006acf69dff6d7d027f76fd9c99641d1463e45b1d0225c346bc6bbed8b", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139204a7448677652487352674b616c3463313332375a2b4b6558345a444d58343649364a336d6b3762536a41380a53465452774b3971413031614a4935735a6f4344514a436f56492f47763837554f496471582f6c5a556f550a2d2d2d204d776c6d6e387973466679667246384a67453441626d726c4d49574742482b34544d4c6c6b524a744d33300a", + "length": 131071, + "name": "x25519, 131071 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 131071 bytes" + }, + { + "draws": [ + { + "hex": "e46f1b0f5b230a1072f4fbebfbcbb449", + "n": 16 + }, + { + "hex": "10ab9e8379811992ce7cb1f1aa1723498224bc59974b36b2faa466c3a85ca410", + "n": 32 + }, + { + "hex": "7605ce267b3bc29efc3a711119d8f4db", + "n": 16 + } + ], + "file_length": 131288, + "file_sha256": "e8bed55a3482f1691c7bd198e0b0287a1336606d30697cd729877e16022e8e51", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2058323535313920517831633562774c4e313465385a38684332513753667451313631624b5469337077436533506b774830380a75392f574d7870625059334250324e752b79386a3043784f6d706c49537a61556e5467506448624f4376300a2d2d2d20676a41357a68746465596568674f356f61586b49697a71442f34555845765269586d6a676a375a494653380a", + "length": 131072, + "name": "x25519, 131072 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 131072 bytes" + }, + { + "draws": [ + { + "hex": "406dc40606536090370fa7ff0b019445", + "n": 16 + }, + { + "hex": "f8fd80b15c916fa3062e0f344c589cd7c519fe63f68fdd7f41aeee73dd17d3f5", + "n": 32 + }, + { + "hex": "a58d7cb8e4034f08cb9f04a5b399e4ba", + "n": 16 + } + ], + "file_length": 131305, + "file_sha256": "d76f3bb64e4853a5cb836d9297828fdf2cdc63f69ee3a889b6d4fa981cc0ecef", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2058323535313920434b487643773334766535503943774d4b7248696834643837462f72454245334a6859736b4a73383454630a496a355a747a58536a6b47786f56486b365173395139312b4f2b416d4d7972326d6e676935486a316930340a2d2d2d206e486d633244624c587a43616b615a72487374373565434f65344555575954674d6659456772576e566e340a", + "length": 131073, + "name": "x25519, 131073 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 131073 bytes" + }, + { + "draws": [ + { + "hex": "873dfb51fcdc75b83cbf1fee2b194f06", + "n": 16 + }, + { + "hex": "8da94580923a3308294739f48697fa05041981cf194723456e51664e3695bd28", + "n": 32 + }, + { + "hex": "0b9a8976122fd646e0d5fee05e46fbb0", + "n": 16 + } + ], + "file_length": 196840, + "file_sha256": "4c9c2ab563d0298636968f3740e2731629f0042b76751bbfa00fca1a30bad758", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139202f32736b62624e355534326455736b4d754271346c75626e39476e2b484c6e33396a3067502f6e4e7947450a44496d4f33394b2b4f73492f7664726d495056484c6842746469713152456c6c49326a32726432634a35670a2d2d2d2064677653416e646f63353745777a724c426c7339622b5334335a52384248676c67383268755262677776490a", + "length": 196608, + "name": "x25519, 196608 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 196608 bytes" + }, + { + "draws": [ + { + "hex": "db772c496796beec733817a03ce83eb5", + "n": 16 + }, + { + "hex": "79fd0d067a10f01efa6b0a76e97e0984f50701836da80822c7dc44eb812f0a5a", + "n": 32 + }, + { + "hex": "c1e5c5e03a88c288b047bad0dc644f00", + "n": 16 + } + ], + "file_length": 200248, + "file_sha256": "0621645c4927e5a61e63ee245b7506a7df8f52ab183eba0242acbe91452e4a7e", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139207976564561354e447554626a554b3841653857376f5257786f796f5066536633494b315175303259786b410a775249704b4956383956315665523873416e316a6d5655774d77706c4a6c514a637a7352665a44706237550a2d2d2d204e36746e37477747752f6471722f6d6669774a4745516e7873474b4668512f6e50643476306636514459450a", + "length": 200000, + "name": "x25519, 200000 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 200000 bytes" + }, + { + "draws": [ + { + "hex": "c7b90b8ed102f577ea6f3cf064680bba", + "n": 16 + }, + { + "hex": "1433555a1ec342931362e78c145fe8840f20b9697747965be4b87e711a8d4ac1", + "n": 32 + }, + { + "hex": "952501188c441f8b51b4da32ee388040", + "n": 16 + } + ], + "file_length": 2097848, + "file_sha256": "897631608ed017f673dba0b6bdaac1ace22df2dd60236cc5a54e742a2a9a2646", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139207273304b50713741394858304e716e664c4e333564726d6b41474c2b755736366b5a3477646438503544450a483071532b4c626f58465552736666684a4853566657465a63317471346f5a534678765a4c6947736468550a2d2d2d20527668666e314c465a4b5832307a704a39387134306857334b645034354d72424a6e4f36312f44726356670a", + "length": 2097152, + "name": "x25519, 2097152 bytes", + "node": false, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 2097152 bytes" + }, + { + "draws": [ + { + "hex": "79392dff102da8b862a433f05370b12c", + "n": 16 + }, + { + "hex": "3aabdac968125016a9de2bad765b7ea5a98d3a7a3319e0761e0e2cace3ca05c5", + "n": 32 + }, + { + "hex": "abe9875022cc4cfb8313ae172a19cb59", + "n": 16 + } + ], + "file_length": 3146699, + "file_sha256": "c524d5b23f798b110d98776093cb6fb088e0951bf2aa0382618e6ea9da791de1", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139204b712f375572446865586a364a4753695a447052622b52464b5464744458414d34635373624936486d51450a6a35543368617a4b4a30456475307231474a74346d4a7766486e41522f556c52444c4663646f7a546551770a2d2d2d204d524234634375583472735852374f4479576531394456464d5536557947384a65715337686166647674490a", + "length": 3145731, + "name": "x25519, 3145731 bytes", + "node": false, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1Z5N26YLQ8W44STK39WHM23NQJ09T0R5TKUPWFAK433UQFF2EJA8QK6G4YW", + "x25519": "age19fghtn5szz0mjmq3rwaxn29u7ng9x8wmwyg5eej28l85kmtqafkqcz3y0j" + } + ], + "seed": "age writer x25519, 3145731 bytes" + }, + { + "draws": [ + { + "hex": "5ddaa385be4aab46d4922f23f4aa5318", + "n": 16 + }, + { + "hex": "fe4b572741eff037aa57010090a017495e67dea65e771f0fe92145f3442c230c", + "n": 32 + }, + { + "hex": "bd8945767a2df731c63314aebfc60fe7f903d707866ab9446ff5c7c781878c07", + "n": 32 + }, + { + "hex": "2552e05ed58e01a4bf3814ae0061567a", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e205832353531392077576b4c5942592f70786639424949762b615872596c68454c387561444f4b63305a53346b574b37756b6f0a73747862534f394a616a53412b4d58377176543455682f5445784e6743504a6a4a4543342f71556b716d4d0a2d3e2058323535313920364c5974375977414170727034306e795759737748527464574f6233766a713050474a63346b55466d6c450a6d2b3862393532305a4e62674e617048664a4679344b66514f585051342f5a32733161466935487057396b0a2d2d2d20546c2b6e6c6b34514f4f2f6b5343594546733853376d744541454267396b70514c766c6569456e6c4841300a2552e05ed58e01a4bf3814ae0061567a19e1b9dd9aec268cb879c28f6e38d9de08fcd05b956b0fe0dd73709240c48b821c0b81f3fb97c4a1e73a35710423b321ee818b7a7e187cedaaf2fd2a75d2eb1cdbdf", + "file_length": 348, + "file_sha256": "ff0d744917395083206e77aa3f2ca63e8c2fd9ad0a1576499e09cce520f658a5", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e205832353531392077576b4c5942592f70786639424949762b615872596c68454c387561444f4b63305a53346b574b37756b6f0a73747862534f394a616a53412b4d58377176543455682f5445784e6743504a6a4a4543342f71556b716d4d0a2d3e2058323535313920364c5974375977414170727034306e795759737748527464574f6233766a713050474a63346b55466d6c450a6d2b3862393532305a4e62674e617048664a4679344b66514f585051342f5a32733161466935487057396b0a2d2d2d20546c2b6e6c6b34514f4f2f6b5343594546733853376d744541454267396b70514c766c6569456e6c4841300a", + "length": 50, + "name": "x25519, two recipients", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-187CGRV0XU3M7FSZ0DHYRCACTVSTM2KTT6KXN4XV55P8FV8HZRAMSZNUX25", + "x25519": "age1whgmasnral5u50rlq9a4j0pxv5fk77uxk39fyug0dn8jvakjmddsjaqkt8" + }, + { + "identity": "AGE-SECRET-KEY-1ZH46PM7AQKD5KV3D8CSL0T2J0YJH9LQQ8KGKJC79WXRTXXZZLXHQYQRYCZ", + "x25519": "age1tfzv84s0dkv89k4tymkcc0r5ncukvhxucnyd6g2t9jhx9hl58ppqyvvlwj" + } + ], + "seed": "age writer x25519, two recipients" + }, + { + "draws": [ + { + "hex": "91b7b6904de01f801e502f75bea7b110", + "n": 16 + }, + { + "hex": "9fced785c0e9f3ab357a47854abb70fd70469ab0e41ac03e77416d17e00df035", + "n": 32 + }, + { + "hex": "32b062326c28ec57152d9c16412f1c622ad3f2305112a6c61f31abf5e87dcd9c", + "n": 32 + }, + { + "hex": "c538a6b3475ae0cd051a3befd0e5a99c033e467ad0d1228511fd044b9db57c7f", + "n": 32 + }, + { + "hex": "fd495e6e48df80b9b80c682a2b9d70b4", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139203546674b746348502f7a75615a475935626454346238457a64453162596b6c554a4379494853392f797a630a416430495a6f594c2b67726c4f57646974717335696f796f63494c5770652f44703951744e30704b4839510a2d3e205832353531392074726968577a7830734575756f4d31487a764d75534f4138462f46614662524841794d2f717453703955550a624c742f5a2b4d764c366e6551554a3456656d513548793941356e7334365a414a6f74516666552f637a380a2d3e205832353531392033316678725a4d4a352b374e5777667a7177786e716a436736514162633348685259795a464e31746b6c590a6e7667465157584c32566e4a4d5333487a7878715a5a7333335a4a704837624a78786a3770344a703179450a2d2d2d20534657704d3449515955437a50666e59486f6971583634756e55444d306e58506b6b50315445764f3051550afd495e6e48df80b9b80c682a2b9d70b4d9942d745c8c7292d8d0e9d51a00671188c717516ebdf4350a379161e8e506420eb9541e775d16a9edad9eb85679ad93d6f49b9956c83fec305d22606c57b05fd1d98222fc8b3ee82c6d2c4c0d81675f2832be0a9de0c99180282ba710e1b3941932d0e8768ed5e7e848681cf43097615f79ea54b4e231827d726802bcd2a41450655d4922ba7310c1ebdfebcc624503ee072ee86686e6477058fdb245ccd45a75418d4fe43b6d9cc3576beec85c53adbfd2fa8919587bf7f6856f317ee7a02ee07df9bd92d5a8ded6fe58b63fb271e2acb98b5595382f9e796132ca8f73ccdb80003530999f94fac552561f0d7ec85d0a3a1f887d0a637feaf44f00316c3d06a4a85215b7186743de56f0caa3c76f99bbbd767ac6a52e4c64f968a471a4c450aa4ee82cf83a14d1ee12e1b053ef9a73015082ce7f591773fa6cc2fc8774f5f6fbc91294325d2c83cbd1e38f732b19d52044c5debba6e8c3ea26a77787907adf473dcc699f08bd5a1108b587c9436403fa996df7579b79aaea8c4e0296bc041c6ec2fbe1c8ed8bc4fd035d7a3591c0a4ce517a01a642a0613cd574b3fd583a89b57832f300479c6aaee03e859259a53572dadbe60a85ceb0372614cc4d25fae0e779400ebe4016f0a7cca82f1c8d626451f9d6f64c3e0e1fb85c62e11d43a7d03f58cbac6fec3ddc3c82968e44a34eb4ab56b2236597765d1aa7e5af4c2a4f5cdb0a1c814426e0892d8334d0fd455602c89e48ee4fa6b92a707862413c73768c0494f42e576a2a9da9a4131d23a32c0b4e8d18d22c7e809aaa54febb932e2a661640472ceb707503b34dcafe54558f61d58eecb8ac371d5054d56c8dbfd300f4f8764758add0034c24a2b6906cae32e5bf113f352c8e5fa335808036109f238bf799e5fc61e92fdd2644c1ff4653b985657ed9e9ac2bff70822bfdac3a8b1329a8c8bc89b8d4bd6c0f4c662af4d5a90e0d8f234462a43d82be28f1f5bc5db62b1df12a399cd01d619046a20924b2f7f749c229e9ecccab6a9d553e9ddf6d2fb521c92fff8a2d6b036a9a60366d8e1b9ac438a8cd34591f8a7a0c8627fa0958b2a27ab78c7cb2a9c280a47b5ddfeb279c2ec359f855dba0cd2d509db48aa5a798c62ee1fee1997db433e555295f0ae0b944a602efde1d443640963ce5bf31b8af605b159d570676c6443dcaa9d42be3e5792e196fb5e7e5e868d78c77ccd131e5a7cfe1169476875738e3870e0520b4707312c61e5c314e9d45f393945b7d4ff0a4213b1eb5023f7244eefa0199bec575a6db5816064aea1d419b386b7c0ddcdfdd676915054a6e2eac7c1ff8e08cc7fa38dfcd6cb62261054bbd09d9511b6457eb2b2b33a40fa22dda8497e945ff1c7f8b92fda5aec69e4d738c30f7c8119e1795b636f1438eac9077c147851aa0b80eca55d3b4bd1c38cc", + "file_length": 1396, + "file_sha256": "9d0daacef9bae67591890b3a83008a0c81efb29a2ed5f1c27859d9e69dad972b", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139203546674b746348502f7a75615a475935626454346238457a64453162596b6c554a4379494853392f797a630a416430495a6f594c2b67726c4f57646974717335696f796f63494c5770652f44703951744e30704b4839510a2d3e205832353531392074726968577a7830734575756f4d31487a764d75534f4138462f46614662524841794d2f717453703955550a624c742f5a2b4d764c366e6551554a3456656d513548793941356e7334365a414a6f74516666552f637a380a2d3e205832353531392033316678725a4d4a352b374e5777667a7177786e716a436736514162633348685259795a464e31746b6c590a6e7667465157584c32566e4a4d5333487a7878715a5a7333335a4a704837624a78786a3770344a703179450a2d2d2d20534657704d3449515955437a50666e59486f6971583634756e55444d306e58506b6b50315445764f3051550a", + "length": 1000, + "name": "x25519, three recipients", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1DF96JUP95EQCYXMM3EAYLF5G6XR9QJ9WCUSV6JWCM6HV8PAWMYNQXG9S7L", + "x25519": "age1dkdxscty0zjg0xk32pn52j0qrmrejcmta20ljj0ye959rst4m3dq7u5w53" + }, + { + "identity": "AGE-SECRET-KEY-17ZRWHT5HKE8JCYKDFZ2T2L3V48SDEX3ATHZU43QLYUHFZ2MTEG7S0Z7H9J", + "x25519": "age1kxyxnqr5vext6myay6p2hs0d6ggh09kd3vysn9pfptnq58newpaqsaqccd" + }, + { + "identity": "AGE-SECRET-KEY-1N2LLYZ2SRW4E63WFLJYL5C08ZJ4TAKPYY958VMJY430XNX2CV0FSPE6EFM", + "x25519": "age1khepf4vac0mv0r5xwqreldug5l38nn6zsacerrwv6td5kvgcg5wslpt2an" + } + ], + "seed": "age writer x25519, three recipients" + }, + { + "draws": [ + { + "hex": "fbe6b750bbed302df0d7d6f165435f60", + "n": 16 + }, + { + "hex": "7c0e54ce64ca4152dc96fb4104df242da0f3ab57e8afc91bedd860236597c26f", + "n": 32 + }, + { + "hex": "cad0db6f882f4f0d6e3aa7cc4fa9b3361d60434db6f1e088d7fb9da8f2a0daee", + "n": 32 + }, + { + "hex": "8c5c658dfaefc3a44a5616df4d7240d467f70822f5a1cf008d9b880be89e1790", + "n": 32 + }, + { + "hex": "8dce5bee5dce4260f3d65cfb47d26c0f740078b0797d25a083446edd51466562", + "n": 32 + }, + { + "hex": "43f68b26b1c4c35deedcfd3a3f52babd92099e2e711ca888614050e898fff9d8", + "n": 32 + }, + { + "hex": "7d3b223868b0f7303c42e686502ec624d11ec6fa290b5a23308c74f7473b3b5e", + "n": 32 + }, + { + "hex": "dd69613ea2bbf65773ea5dc5d474fc2d6e3a2f950ccacc315d5e0a8d290495ed", + "n": 32 + }, + { + "hex": "74a3a8c9c6baaae1534d59a78661db9f391ad2e139afe4dda3aa91eaaa68904d", + "n": 32 + }, + { + "hex": "7ef738c30501508efae31a09f0e19b674a8b3c7e0d4e4f65002a5daf7b75073e", + "n": 32 + }, + { + "hex": "249549d8561cde905dc40f97ed6b693cd7e99a94d7725634b59ed39b534f2e10", + "n": 32 + }, + { + "hex": "9a7b7e2bef58d6df279ce8656d8a3e3570ffd927373e9fdcf01d610cf93cc804", + "n": 32 + }, + { + "hex": "cfe395c1d829e4b1fa0a195ad8a1c8dd34e4a08fac028ffccd221e00a4a8fa56", + "n": 32 + }, + { + "hex": "8fcf0b21a61c1ce1bd85a2c06105b06ffddb5ae53ca7c75d4244b5cfe3b65a78", + "n": 32 + }, + { + "hex": "82c85df24388d21ec1414e6c0195eb167a48bc529267313d9fcd2cb6d988748b", + "n": 32 + }, + { + "hex": "b314506f30d60f718e35dd27f85b9ff1fd31f0ba3ffaaacbe1879061bcd1e32c", + "n": 32 + }, + { + "hex": "079a6ff6c02e9e15fab81b659e40d2698fc629b46b1be1d9397256620d4950fc", + "n": 32 + }, + { + "hex": "5f7ef8a5c10f2c21901bdd31da0650d3", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139206157716c62416b51377a70376f5367354361516e78713247466f7755486847442f6b576e50584c586a53380a6973643143644e6e7650486e555476306a3370517948616d2b7778796b7a763343626b4f48736f44676d510a2d3e205832353531392059766c4953746473746959646a684c666b6667324b582f31512b61322b4958334e305751443966634d6c770a68646966716f55526f384f4f7258443658457a495864516d453555595a4f512b56702b2b575162727552550a2d3e20583235353139206a54546b6f754969544e4657704f2f6a6f5a59794c64444432496f416f77735753393635716a326d686d450a52676e517268704e6d314f366168774230475559694b55576b4a66334d785733396a64306b6f76547553490a2d3e205832353531392058657a476c666759755241593675707a39716576566870517965775a6f737a75362f7633664e4d673152490a6365503448766a744d68627546334a436d4c6e3046414d784631507a565076376378624b447a7a584c35510a2d3e205832353531392056304e3038496c6b51514c567473736e416c62522f72686e734a7851395075354e4f5478365479394630590a585277634a6a44336a386165524973326c57797538556b73542b36734449554b6f386f645467506b4546450a2d3e2058323535313920392f61757a6b75516a64396a2b6f7a6f524641576e6a6a3452735a35375a645334323572537766665a33450a3347336c492f5479745475684a65786c5a334d515778303066426846747459576f31535530526b506671670a2d3e2058323535313920332f2f5a6f517266596d6e532b6b416e795166456b6c415936353631426e564e657a4b78656f7a4a5047340a357a654130794361386a4e56594a6d77684466306a624330737235502b626f62784f424c525436753562550a2d3e20583235353139204966326b7a6f5558696e39364a50377434677639375664326a356754505951584c692f644b6350315033410a7878556f4f3646656b7a2b615972346c7a77444b6c66487743527032386f65725378655951563743326d340a2d3e20583235353139206e6d3056633678327a75784d70547143427647526c3564466d6e424a497454523849782f543369644233410a373873764e32596b7a4171796e68595579344b59766a5741486b672b56766c3553422b6330414e4f556d510a2d3e205832353531392032514b3243776c71417353546d4a7a4c627a2f70517046774246496b792b687a552b41386542472b3043490a4e4c55664e566862386269745546326d384131314d776177463036312b49556f6168566d39336b674e72550a2d3e2058323535313920486e376c494f495a50763163645a43425451554e2b65664c5635344f4a6542324b4542502f5956462b30770a6b557a7050575839364e5930724572572b6a494a31614157584d533168625459794a354f715837626f52630a2d3e20583235353139205955446e682f475a412f334b716a4779355a49784750586c5058557635586b4437736f73415054455430730a323431365154584c39575247786d47633833685351596d377865386d366e72443752354c79534b386c52770a2d3e20583235353139206e3948434b635a4251556e344531766c70424a35752b39752b594b736e32464341502f6351686c534147630a6b58304c694b6f67394b3552577161324d706955762b757251316e506c4d35566b366c39392f574a5a6f670a2d3e20583235353139205552426a445a305841785662425837447639795a4f557135427442784378456f42526a56485569535053590a79376b617155557a4d4e374934436278574c69497055527a4c314972334e6f37795a6569364668316e74670a2d3e20583235353139207274305a58514f5543422b6a48656f6b553746344646656649376f5552376a6537717533437a6c544d79670a4d6e426f4d39755974776a6f43664c4538474e36366868656731515a57386758662f644a50536a2b5a52630a2d3e205832353531392061517249366e4c5174614b566374354663506f5a774956644a4d682b756c7446666250746c67353161466f0a64535742614d456b7837637953744b732f414172616251554f4e68394b41515131334f6d466e64624c586f0a2d2d2d206c4936305a475356374a3377314c31497a39336d7a394e6a396e6b784e6b34493937493661376f5448446b0a5f7ef8a5c10f2c21901bdd31da0650d379571b23ee4f40c6f4c6219d0d03b9ed7d1d27efa0ec6753276b0bc8eb2c6313e2f436a3d26a8cf63ed2047f7775c1c67a94d0ded8218038e694d9a8713ad44aa8bb6f34ba03f79959217af6277021079f656c2914c3a1605fb9b42cc09b071469ccd338705a973487cffeeb6dafa3b0c838ee8296254f", + "file_length": 1773, + "file_sha256": "f03c7989dfeb5681226fce272d22006442ee5790f760e6fc2d0cbc90a53c7231", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139206157716c62416b51377a70376f5367354361516e78713247466f7755486847442f6b576e50584c586a53380a6973643143644e6e7650486e555476306a3370517948616d2b7778796b7a763343626b4f48736f44676d510a2d3e205832353531392059766c4953746473746959646a684c666b6667324b582f31512b61322b4958334e305751443966634d6c770a68646966716f55526f384f4f7258443658457a495864516d453555595a4f512b56702b2b575162727552550a2d3e20583235353139206a54546b6f754969544e4657704f2f6a6f5a59794c64444432496f416f77735753393635716a326d686d450a52676e517268704e6d314f366168774230475559694b55576b4a66334d785733396a64306b6f76547553490a2d3e205832353531392058657a476c666759755241593675707a39716576566870517965775a6f737a75362f7633664e4d673152490a6365503448766a744d68627546334a436d4c6e3046414d784631507a565076376378624b447a7a584c35510a2d3e205832353531392056304e3038496c6b51514c567473736e416c62522f72686e734a7851395075354e4f5478365479394630590a585277634a6a44336a386165524973326c57797538556b73542b36734449554b6f386f645467506b4546450a2d3e2058323535313920392f61757a6b75516a64396a2b6f7a6f524641576e6a6a3452735a35375a645334323572537766665a33450a3347336c492f5479745475684a65786c5a334d515778303066426846747459576f31535530526b506671670a2d3e2058323535313920332f2f5a6f517266596d6e532b6b416e795166456b6c415936353631426e564e657a4b78656f7a4a5047340a357a654130794361386a4e56594a6d77684466306a624330737235502b626f62784f424c525436753562550a2d3e20583235353139204966326b7a6f5558696e39364a50377434677639375664326a356754505951584c692f644b6350315033410a7878556f4f3646656b7a2b615972346c7a77444b6c66487743527032386f65725378655951563743326d340a2d3e20583235353139206e6d3056633678327a75784d70547143427647526c3564466d6e424a497454523849782f543369644233410a373873764e32596b7a4171796e68595579344b59766a5741486b672b56766c3553422b6330414e4f556d510a2d3e205832353531392032514b3243776c71417353546d4a7a4c627a2f70517046774246496b792b687a552b41386542472b3043490a4e4c55664e566862386269745546326d384131314d776177463036312b49556f6168566d39336b674e72550a2d3e2058323535313920486e376c494f495a50763163645a43425451554e2b65664c5635344f4a6542324b4542502f5956462b30770a6b557a7050575839364e5930724572572b6a494a31614157584d533168625459794a354f715837626f52630a2d3e20583235353139205955446e682f475a412f334b716a4779355a49784750586c5058557635586b4437736f73415054455430730a323431365154584c39575247786d47633833685351596d377865386d366e72443752354c79534b386c52770a2d3e20583235353139206e3948434b635a4251556e344531766c70424a35752b39752b594b736e32464341502f6351686c534147630a6b58304c694b6f67394b3552577161324d706955762b757251316e506c4d35566b366c39392f574a5a6f670a2d3e20583235353139205552426a445a305841785662425837447639795a4f557135427442784378456f42526a56485569535053590a79376b617155557a4d4e374934436278574c69497055527a4c314972334e6f37795a6569364668316e74670a2d3e20583235353139207274305a58514f5543422b6a48656f6b553746344646656649376f5552376a6537717533437a6c544d79670a4d6e426f4d39755974776a6f43664c4538474e36366868656731515a57386758662f644a50536a2b5a52630a2d3e205832353531392061517249366e4c5174614b566374354663506f5a774956644a4d682b756c7446666250746c67353161466f0a64535742614d456b7837637953744b732f414172616251554f4e68394b41515131334f6d466e64624c586f0a2d2d2d206c4936305a475356374a3377314c31497a39336d7a394e6a396e6b784e6b34493937493661376f5448446b0a", + "length": 103, + "name": "x25519, sixteen recipients", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1PHWMN8H5YG8SDNCCGM2MJVS60P5WSX8A5X28NQLJF4G096U0GYYQ7G46CL", + "x25519": "age1qrae8y4jq3xw94mnvrd5n90yk2wj7am8e0cajx6zvdgyu6csjg2qsx6jfk" + }, + { + "identity": "AGE-SECRET-KEY-1MNGUYFVA6YY3PM52PEZMT6JV5H3AUA07V6C7P9QCL6XGAM69QY5SNP6ASD", + "x25519": "age1wnflq09p55y0j8wngfnww6vpudnayvpzs0nnq3y04kavx28z6epsalu8la" + }, + { + "identity": "AGE-SECRET-KEY-1ZG7220KMHS4PV2D2AHWGUSYHVJEJZSAURRW0UHXLTUN04JNJJEQQG3GQZN", + "x25519": "age1hz9qha8andjsurtdkc4j7mr80el4rvwe8f76g54ynp6jek44ygmsupj7ps" + }, + { + "identity": "AGE-SECRET-KEY-1JFHAUNKWYJCML8SPEVS2WWJTGG2XCPJ033830QNQNZMEFYKAZWFSVTM86X", + "x25519": "age1sq2qw44lhpm7xy6ddxmfydxc47354v37sa5zkhzad90r6xqevykq3rucll" + }, + { + "identity": "AGE-SECRET-KEY-198HYRJNZJVRQFFWC9XCZJGNT4AW3X4Z0Y9TK622YWW3YZH77MG6SFUFERJ", + "x25519": "age1x0nqcjp0k6twuflecw6f4zttj062uv5tkjd3qc88nv029glvtefq8tyxhz" + }, + { + "identity": "AGE-SECRET-KEY-1G8AGVKW4PYSQXXL5PZM2WSGZ6SD8TNJM38GVRZQ24DRTL6ZC5FQQX947TL", + "x25519": "age1e7ueklpkn8wp8f7apdggas8ecgamh7uhgc2upn52h4xjpywvku7sswhu5v" + }, + { + "identity": "AGE-SECRET-KEY-1J3N50VFTCYSPMZL7XQL063E4YVNWCR90WNJT63SFJ4MEWH4ZEFFQENZPJ0", + "x25519": "age1axjmv3u3m6lpqkg3gt9e9mww6pnmts2l9ctxyx6xjzmqd408v9aq4nulhx" + }, + { + "identity": "AGE-SECRET-KEY-1A2CQ2T004ZH4KEZ0LLHLRUYYCAJQ43U92PTEXH3EDLWF0AZGV9ES26GTWK", + "x25519": "age18efgt8m9r06ysezu9uh54kuln8spf3pph2v3n4unvc9adfndaqps9u4dk8" + }, + { + "identity": "AGE-SECRET-KEY-1KDWL4PQE9FQNXMXULP6DU4L7NQDUJVXWE2SEG0W8ZZW3TH60L4FSTU5TAU", + "x25519": "age1me60ucpfvg9wjwfrlnt5v8uw7mev8p8jqsr2vf78yl94l4dvdp7s3t54lv" + }, + { + "identity": "AGE-SECRET-KEY-106JJ6GCNTDXZCP24HTWH82X3H7DAAU4S4G2H5WK8JRPUMGD73JPSM4N3GY", + "x25519": "age1a6twsw32kc7kd3p9clytg8q20mrygtj6kd7n59jzsz44yes4v54qvqq6u8" + }, + { + "identity": "AGE-SECRET-KEY-10C4JHEMJ5K5AS9YX7QU7M37XPRCHSPJW5GF9SWKZM3Z9MN72787SUC7ZS7", + "x25519": "age1dvt4urxzpgxqmdpn0djhjgycg9y0z9jatejfzrr9r3g8gfcuxgjq84y3ms" + }, + { + "identity": "AGE-SECRET-KEY-18L8LD90U4G835HKELZTC05VSAZYWLDSJ9KHYJPZJ6VUFU9S7283SAQZMAH", + "x25519": "age178uxq3krkr5n0lmak4dd2wearr9yne6rckv6k24vd5g7v89mtg7qtwu280" + }, + { + "identity": "AGE-SECRET-KEY-1A8Q6UZ9KFZG68MENHGPDJDWVPUZVMZWYQJHJSDAETFZX2TEV537SVACZM3", + "x25519": "age1wgsa5pjknwxjq3s32d8gw3sgpxjgep3l88r0mpswx0u950chscnqucvs8d" + }, + { + "identity": "AGE-SECRET-KEY-1XN9L44NNVRJWHJM8PUVR0J02N9GK5AQ2A2RDENGE9K3RLTP4GNSQTPDM5D", + "x25519": "age1eqk2fns0yve3zcan3sg8arrgf0y9x6vg0ghwcm3g6ny6twtaudtqlggsrw" + }, + { + "identity": "AGE-SECRET-KEY-1QPV0NUPY4K8WCFD0JMRXJN8Y6305UMYQR72TAAVYMH5926AF9ZVQCJRYM4", + "x25519": "age17n75x0a4uejfwxawxya8kuh6e8c3acntjepmf4wy78qtk7hev4xs5qc8yq" + }, + { + "identity": "AGE-SECRET-KEY-1N50XDWSCVMQ5SQCPZZVHGXQ6U39QUV7LGU23W8ZHKS2VA6LPU6SS9MQ69S", + "x25519": "age1udsv2ucw3hgec8ycscec7dsxpqgap525458d6k26mqrgc29a0uxs8rr50g" + } + ], + "seed": "age writer x25519, sixteen recipients" + }, + { + "draws": [ + { + "hex": "e18ee9b3c787547199a7a06d7aadbd8b", + "n": 16 + }, + { + "hex": "fc335d38c7dcfd32a14ce39547ac87af78d2853e3057bb673a47de55bb965bb4", + "n": 32 + }, + { + "hex": "8b0a9cf48faf40b0a258e22be9457c8921d750934c2e3c19ac0305c6d79b65bc", + "n": 32 + }, + { + "hex": "c8e9012bf2295171e9b593f576b75bc4e1f5af7bc487c05e0bba7116d898b240", + "n": 32 + }, + { + "hex": "9c423c43e4a16c764ac3ae512a86e151c20da4d5157bb2194594a2f9d4e727e3", + "n": 32 + }, + { + "hex": "d83dedf687f33e35737cfaada4afbf99e05383b579053c8e29b330dd577d0973", + "n": 32 + }, + { + "hex": "1ae901d2773101093b148b0cff6a297d041aa3b2f7f1f311a6e044d80cb26b2f", + "n": 32 + }, + { + "hex": "02737f2d4f78f3b874d0a12e69c256ac22006a2242422ddffbb5d04466fa2e30", + "n": 32 + }, + { + "hex": "6d1568eade6df8e203ae2618f63bff8b51290d936016b262c527d346da00facc", + "n": 32 + }, + { + "hex": "8b84d70474f0e0c6f3e2581ed6ad634535f86079c501a446c059e738107954f4", + "n": 32 + }, + { + "hex": "5dd7fe856ca9f7fbcdbb8afa07e3aee1877e15f3ffea6e8beb5cc6d6301e724f", + "n": 32 + }, + { + "hex": "d83245ac691171888215fa11e6acd029a14888bb99626bcce97b3fc49e91d5ee", + "n": 32 + }, + { + "hex": "03a3f1f4fa39a7a9a33229d593a0e4d7851c6862c73abdb82b81a662e4c8abd8", + "n": 32 + }, + { + "hex": "b6ee1344f2fb1ee105c70526ef13692b3e1efb2c975ddb43c1cbc3fae3ac967d", + "n": 32 + }, + { + "hex": "f836da18e0c25114991b4d956526f3382df2207b09bd769d3c358d79b01c11a7", + "n": 32 + }, + { + "hex": "cb0080ebdac5637528959d139017a64cc24e70db9311e79416c87cad9b30ca3c", + "n": 32 + }, + { + "hex": "645b2ede60a48ebe818fb8dd5913d9afe32740dcbc55ee955d18a057d8acbced", + "n": 32 + }, + { + "hex": "307352675734f63834030885638fee92", + "n": 16 + } + ], + "file_length": 71686, + "file_sha256": "6899746e23ed8cd668e52908efdad16146a8d3bbf4283fe7e9213bfcc81d183d", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139205a674855664b466744786375526e65793335364f31444e34317a423567307a722b564778332f6461496e490a6a4e4e4641424d4c65614f2f636672714a565457636a6e45473951667163673936474d6f6f6172772b43410a2d3e2058323535313920382f782f305268323366706230624476686e546565486774627a4d4676564f4462492f33626b55724841510a54754d3378434765452f3548522f616e6e74493258516b694b314354497a336477785a37375359495679510a2d3e205832353531392076534b48514c464a55394d3538724c464e68306b2f347a5637712f414e423534757067363265716e7544510a65346e30514a4b6349485744517749712f6a494a706c4579715253373350464571657770647832327661490a2d3e205832353531392047644463526d7831422f586e577658705965545970765446474c587146612b6c543139464d7236466d79380a4336676f4f554d67466f4332524f6a5a6d55416e6139656b4a4558592f6d426f7165433465454b363673380a2d3e2058323535313920442b4a454d6d3654423545394d6b5176776130644536764769666b755948416e6b7772324d55786a50694d0a6e74344a6b3966774f757958645a526a564163636635786c6a4f52693045726c51456f57734c364d52626b0a2d3e205832353531392074494f5178697a56324335666c51616e52734c4b2b734d6a4c63373442586a5856426a71796d6d306c68490a7669364234474537556f6a727a59634d56754364376969325a4f4139723056674d494a484537746d4d72670a2d3e20583235353139203141586d6d2b6f47354266457975344d616934503154692f33504439542f4e7764456257793038445431730a4566415a4b3535304e34735355315752644177376e2f634347584d343674452f5071476633426a36324a4d0a2d3e2058323535313920724c546f7361756e764e38537179326c32465a6c664242673054357462455a4e764c50394c326c516267510a537a63464d50384c454955433966546c497a766a744d376e664971316b54576d386544436171546e636a490a2d3e2058323535313920725a4b7146756136756f41444f534e50454935474e76775a536978744853534c38496e7262533779347a450a746e6477313751476863423756486f6c2b2b6d494c6c4b4835476b506b6d55744463473952766a4f5449590a2d3e20583235353139206a6c595848503164543963764342705751375a466b475a784f4c312f6753364759773857547232384f434d0a52745932727875466658575852374c7334544f554138674363734b53622b3645746d5a76784344485533730a2d3e20583235353139206d53516773364c3278746c4a4c594333436c3475744b2f67534b72735047544539697167674a7356776e630a396c4279685a79364357723548774b4e516d695946587175466e73434249487a6355594453756a695945770a2d3e20583235353139204f787850717642663859706e6a754f7563633155696b364175785451614d6c6b6c5a576a65795a4c4647670a6c75556d72682b4c47494c746f4a4e77584e567330636f50732b7a7a4834734b366262394e4337626878450a2d3e2058323535313920567662496b525739785451444f423351727a56424c646d3979716d4130456a4e6671564174434d5a4377770a6a517a5433544c6e62442b473244516b4f77647657494258664c42414272693749384641757a616b7668490a2d3e20583235353139205236324653794f54356e38566236727376412b6b336e425936432b36425a44707857484c706b4647466c6f0a4e51567a4d6f4555474f6a4a4956646d527364364d2f78506b577a38664e3032356e66626a496c4b4278770a2d3e205832353531392052717851654f7354484a707676304333734d7978373042547376327564514b6753665464675044656941490a76595a376756354c5039476e47756f3456504a504257394130507a314c36387a76675a4e563441417044380a2d3e20583235353139207672473943343768372f5775793271424b6d55592f32493232686a69654d594768755546766c6c566b56630a6569644f463353474b752f487047414d553669734d56626849512b6a4f784a52304f61486b53646e3057550a2d2d2d206d387332413271716d72434d32564c38665336414453756d39356b4c516841736979786a762b6b6c3168300a", + "length": 70000, + "name": "x25519, sixteen recipients, 70000 bytes", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1PHWMN8H5YG8SDNCCGM2MJVS60P5WSX8A5X28NQLJF4G096U0GYYQ7G46CL", + "x25519": "age1qrae8y4jq3xw94mnvrd5n90yk2wj7am8e0cajx6zvdgyu6csjg2qsx6jfk" + }, + { + "identity": "AGE-SECRET-KEY-1MNGUYFVA6YY3PM52PEZMT6JV5H3AUA07V6C7P9QCL6XGAM69QY5SNP6ASD", + "x25519": "age1wnflq09p55y0j8wngfnww6vpudnayvpzs0nnq3y04kavx28z6epsalu8la" + }, + { + "identity": "AGE-SECRET-KEY-1ZG7220KMHS4PV2D2AHWGUSYHVJEJZSAURRW0UHXLTUN04JNJJEQQG3GQZN", + "x25519": "age1hz9qha8andjsurtdkc4j7mr80el4rvwe8f76g54ynp6jek44ygmsupj7ps" + }, + { + "identity": "AGE-SECRET-KEY-1JFHAUNKWYJCML8SPEVS2WWJTGG2XCPJ033830QNQNZMEFYKAZWFSVTM86X", + "x25519": "age1sq2qw44lhpm7xy6ddxmfydxc47354v37sa5zkhzad90r6xqevykq3rucll" + }, + { + "identity": "AGE-SECRET-KEY-198HYRJNZJVRQFFWC9XCZJGNT4AW3X4Z0Y9TK622YWW3YZH77MG6SFUFERJ", + "x25519": "age1x0nqcjp0k6twuflecw6f4zttj062uv5tkjd3qc88nv029glvtefq8tyxhz" + }, + { + "identity": "AGE-SECRET-KEY-1G8AGVKW4PYSQXXL5PZM2WSGZ6SD8TNJM38GVRZQ24DRTL6ZC5FQQX947TL", + "x25519": "age1e7ueklpkn8wp8f7apdggas8ecgamh7uhgc2upn52h4xjpywvku7sswhu5v" + }, + { + "identity": "AGE-SECRET-KEY-1J3N50VFTCYSPMZL7XQL063E4YVNWCR90WNJT63SFJ4MEWH4ZEFFQENZPJ0", + "x25519": "age1axjmv3u3m6lpqkg3gt9e9mww6pnmts2l9ctxyx6xjzmqd408v9aq4nulhx" + }, + { + "identity": "AGE-SECRET-KEY-1A2CQ2T004ZH4KEZ0LLHLRUYYCAJQ43U92PTEXH3EDLWF0AZGV9ES26GTWK", + "x25519": "age18efgt8m9r06ysezu9uh54kuln8spf3pph2v3n4unvc9adfndaqps9u4dk8" + }, + { + "identity": "AGE-SECRET-KEY-1KDWL4PQE9FQNXMXULP6DU4L7NQDUJVXWE2SEG0W8ZZW3TH60L4FSTU5TAU", + "x25519": "age1me60ucpfvg9wjwfrlnt5v8uw7mev8p8jqsr2vf78yl94l4dvdp7s3t54lv" + }, + { + "identity": "AGE-SECRET-KEY-106JJ6GCNTDXZCP24HTWH82X3H7DAAU4S4G2H5WK8JRPUMGD73JPSM4N3GY", + "x25519": "age1a6twsw32kc7kd3p9clytg8q20mrygtj6kd7n59jzsz44yes4v54qvqq6u8" + }, + { + "identity": "AGE-SECRET-KEY-10C4JHEMJ5K5AS9YX7QU7M37XPRCHSPJW5GF9SWKZM3Z9MN72787SUC7ZS7", + "x25519": "age1dvt4urxzpgxqmdpn0djhjgycg9y0z9jatejfzrr9r3g8gfcuxgjq84y3ms" + }, + { + "identity": "AGE-SECRET-KEY-18L8LD90U4G835HKELZTC05VSAZYWLDSJ9KHYJPZJ6VUFU9S7283SAQZMAH", + "x25519": "age178uxq3krkr5n0lmak4dd2wearr9yne6rckv6k24vd5g7v89mtg7qtwu280" + }, + { + "identity": "AGE-SECRET-KEY-1A8Q6UZ9KFZG68MENHGPDJDWVPUZVMZWYQJHJSDAETFZX2TEV537SVACZM3", + "x25519": "age1wgsa5pjknwxjq3s32d8gw3sgpxjgep3l88r0mpswx0u950chscnqucvs8d" + }, + { + "identity": "AGE-SECRET-KEY-1XN9L44NNVRJWHJM8PUVR0J02N9GK5AQ2A2RDENGE9K3RLTP4GNSQTPDM5D", + "x25519": "age1eqk2fns0yve3zcan3sg8arrgf0y9x6vg0ghwcm3g6ny6twtaudtqlggsrw" + }, + { + "identity": "AGE-SECRET-KEY-1QPV0NUPY4K8WCFD0JMRXJN8Y6305UMYQR72TAAVYMH5926AF9ZVQCJRYM4", + "x25519": "age17n75x0a4uejfwxawxya8kuh6e8c3acntjepmf4wy78qtk7hev4xs5qc8yq" + }, + { + "identity": "AGE-SECRET-KEY-1N50XDWSCVMQ5SQCPZZVHGXQ6U39QUV7LGU23W8ZHKS2VA6LPU6SS9MQ69S", + "x25519": "age1udsv2ucw3hgec8ycscec7dsxpqgap525458d6k26mqrgc29a0uxs8rr50g" + } + ], + "seed": "age writer x25519, sixteen recipients, 70000 bytes" + }, + { + "draws": [ + { + "hex": "961f3e88a795adfdc38c67428ff234af", + "n": 16 + }, + { + "hex": "ef7c4b1196100a89d245cc95e41afe51ec67ee20cdf45e5feff4c22d4bb05645", + "n": 32 + }, + { + "hex": "e0796321de3abe22893afee37d7322eb", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139204c3263394a45557a4e333346577573766253554e672f376a70344a49464d4f3433744f764b3062594d30590a3835647478644945352b4a36386e74784b787961436843586d524e4b736942576f537768786d3275395a300a2d2d2d20507341617244625a35542f7162694553714b3346394d5054646f4e474d5279584e4930307432755572366b0ae0796321de3abe22893afee37d7322eb74dab1c5f7a12c1130ad0a1c971a56a3b2ee81be07a3d0c91f11", + "file_length": 210, + "file_sha256": "bb960b347df2489f6060e10486bc632e46882f992ebab64e583c808aee513c01", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20583235353139204c3263394a45557a4e333346577573766253554e672f376a70344a49464d4f3433744f764b3062594d30590a3835647478644945352b4a36386e74784b787961436843586d524e4b736942576f537768786d3275395a300a2d2d2d20507341617244625a35542f7162694553714b3346394d5054646f4e474d5279584e4930307432755572366b0a", + "length": 10, + "name": "x25519, a recipient with bit 255 set", + "node": true, + "recipients": [ + { + "x25519": "age1y8g4qqncj7dh9p7xujtzpajrwqxgg2zk3pcdwyv6ft5xp9xjqz2q8j4fsz" + } + ], + "seed": "age writer x25519, a recipient with bit 255 set" + }, + { + "draws": [ + { + "hex": "1a357d30b96987a21471aaac2a63262e", + "n": 16 + }, + { + "hex": "282615ae56e5916289cf3b5741c86a4a", + "n": 16 + }, + { + "hex": "e8df180627fad57f5be57fceb04ead18", + "n": 16 + }, + { + "hex": "cb3b93f9ed8e0b3cc1f59caad74b3d70", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20736372797074204b435956726c626c6b574b4a7a7a745851636871536720310a42524d4f62764d305a414a7943382f4c4c424f727061336a38576b453944315766787137412b31446970590a2d2d2d2030305a63584273476d4c3872716f506e4630386a634a59636837376c7468376e62756a387856594e7633450acb3b93f9ed8e0b3cc1f59caad74b3d7074d22c1dfe7015a1600c367faa2602da", + "file_length": 181, + "file_sha256": "7c0f464034c2938ce395024fbc83d5bac1d92b9b67ab52b643144b72bfc9f084", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20736372797074204b435956726c626c6b574b4a7a7a745851636871536720310a42524d4f62764d305a414a7943382f4c4c424f727061336a38576b453944315766787137412b31446970590a2d2d2d2030305a63584273476d4c3872716f506e4630386a634a59636837376c7468376e62756a387856594e7633450a", + "length": 0, + "name": "scrypt, work factor 1, 0 bytes", + "node": true, + "recipients": [ + { + "scrypt": "correct horse battery staple", + "work_factor": 1 + } + ], + "seed": "age writer scrypt, work factor 1, 0 bytes" + }, + { + "draws": [ + { + "hex": "186b5e9db702661d90c703a23dd9a0e9", + "n": 16 + }, + { + "hex": "b407e5b299390396e9108cf4587a8dec", + "n": 16 + }, + { + "hex": "1f5e7ee719b99cdc989ccbd72a8f4188", + "n": 16 + }, + { + "hex": "13af1f6747f39cca5242e8c328def9f0", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20736372797074207441666c73706b354135627045497a305748714e374120320a625a6d736a4f4d30365250637a61786150484c3634596c717362493871303978365848534766346833756b0a2d2d2d20776835795661414a3046693048382f62424a74767657646948435841306854713635556d634874362b70510a13af1f6747f39cca5242e8c328def9f078890c841c1c5e2a5979cd71bc2f5e4bf329d6939187ebfe2077aca8d8639f79072771a91e984b16e286b621816e4def66da43f45cdcf6facb5b7fb307e94fac8d500b84bd00f4faa5418b2af65de6ff3fe3ecc3189d55305289232cca566974bc46cc08f31b113a81b35e07b4d4064cd0c6020e0b8a6c3bcf32e775f6f518411ef55bab6c8310e527f0cccc0316cf601a33add4d1b15d72e20c7115360380c2b845424f1099", + "file_length": 331, + "file_sha256": "cf923ad824e588977a3bdbe01cf7d3343e419e9541ed19638f019c5d97600e42", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20736372797074207441666c73706b354135627045497a305748714e374120320a625a6d736a4f4d30365250637a61786150484c3634596c717362493871303978365848534766346833756b0a2d2d2d20776835795661414a3046693048382f62424a74767657646948435841306854713635556d634874362b70510a", + "length": 150, + "name": "scrypt, work factor 2, 150 bytes", + "node": true, + "recipients": [ + { + "scrypt": "correct horse battery staple", + "work_factor": 2 + } + ], + "seed": "age writer scrypt, work factor 2, 150 bytes" + }, + { + "draws": [ + { + "hex": "774bf82d50b2fe7d80b7bf3eff1003f7", + "n": 16 + }, + { + "hex": "05182e0d07a6a7d3b13655dbf8a2265d", + "n": 16 + }, + { + "hex": "1a3c9e686f062c813b8cdb174305e9b5", + "n": 16 + }, + { + "hex": "4d9fcd391a35402e006284e630bbec32", + "n": 16 + } + ], + "file_length": 70197, + "file_sha256": "d00796aa883bc23d109ba5e759be4dd5aeebcff7cacfbf815f7c12f97ef2d81a", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2073637279707420425267754451656d70394f784e6c58622b4b496d585120320a58716f684567387430464f534b595275384f2f3032785564744a45783658525456556c58364e366e3161300a2d2d2d2056664e5a5356354f6b42656f517138676f5768694a316f622f713446583444356f646248363143476b33510a", + "length": 70000, + "name": "scrypt, work factor 2, 70000 bytes", + "node": true, + "recipients": [ + { + "scrypt": "correct horse battery staple", + "work_factor": 2 + } + ], + "seed": "age writer scrypt, work factor 2, 70000 bytes" + }, + { + "draws": [ + { + "hex": "90b455cd8acf4c55a74b96c4c1bf9271", + "n": 16 + }, + { + "hex": "769f93fb6d2d1088dc909bfc98e62006", + "n": 16 + }, + { + "hex": "02980dca5c0779f09d71778b24f533e3", + "n": 16 + }, + { + "hex": "db22e66d26f03f09b4e3c43d015f093c", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e207363727970742064702b542b32307445496a636b4a76386d4f596742672031300a716e4e4f74356d5038577258547255384c79536d666d726c385a4b79645164314e55577154494e536a79410a2d2d2d203277584158317761386b776f38787149787a50343157486138535a35564434707972433148724e436931450adb22e66d26f03f09b4e3c43d015f093c5aa72ea756576413011ba4aa64450d34546ee0ccda709ca24c035a7deac7f0fa4f8c0cc33accbafd018e615ecf1524843df46025a5b2bb1bb753a4b071b130299c79555d1194d271560380d9904a16c348e648b88aff632c798ff466691ccee579ad2949d354b2d820365168ec14e4307129a24621f4ebf493d70b13b9268f3db826f154926be292bdcc73e0c85375f711fc54a2c3384c80b68308c333350ee9740f0c256e20", + "file_length": 332, + "file_sha256": "49c0d885378fbee4bb5823796a4a5cf6fd540c6b03738b77acf19bd4e3f84872", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e207363727970742064702b542b32307445496a636b4a76386d4f596742672031300a716e4e4f74356d5038577258547255384c79536d666d726c385a4b79645164314e55577154494e536a79410a2d2d2d203277584158317761386b776f38787149787a50343157486138535a35564434707972433148724e436931450a", + "length": 150, + "name": "scrypt, work factor 10, 150 bytes", + "node": true, + "recipients": [ + { + "scrypt": "correct horse battery staple", + "work_factor": 10 + } + ], + "seed": "age writer scrypt, work factor 10, 150 bytes" + }, + { + "draws": [ + { + "hex": "1dc8d56cc513b3aa1d44cdb4ab3cf699", + "n": 16 + }, + { + "hex": "5a3d8e81be86eb18b1652c2e441ad533", + "n": 16 + }, + { + "hex": "2d9c2defa36d527f1dc9996b6c810b29", + "n": 16 + }, + { + "hex": "bddd405b01840bfc8ee7d392414b5fc6", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2073637279707420576a324f67623647367869785a537775524272564d772031360a47524d33387676764c466f2f6838436f716a4b5757612b364c4f6248544c5a366b5530697a6258777851510a2d2d2d2075796568465878356a53714754636442726b4948374b7866632f2f6466444a622f4b41774668324a455a410abddd405b01840bfc8ee7d392414b5fc6c7dbeb54fd6626a4ee1b866e0d7db845854cf73373fd186b64bc0e27880fd41f56301e88da86376972c69481c87408b16b9a57ce691e307d481fd601ceb2cd9bd7934f072e27016860b7173eabb06cee0ae662055f1f620a06d255bf247a2d71bad49a8f3f55d0190f2eb6ae7bbdb0f8fe5b294be22f5dc355d1fd1c9798407ac2493be9b982525b6755819f364b61d44c51583e6ea55ee627c26b6aa6b295dc837ad220547a", + "file_length": 332, + "file_sha256": "77370652fb4ab26894edbf3da6d551ead7b3b5f4a1971bb3fc3c310706a4450c", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e2073637279707420576a324f67623647367869785a537775524272564d772031360a47524d33387676764c466f2f6838436f716a4b5757612b364c4f6248544c5a366b5530697a6258777851510a2d2d2d2075796568465878356a53714754636442726b4948374b7866632f2f6466444a622f4b41774668324a455a410a", + "length": 150, + "name": "scrypt, work factor 16, 150 bytes", + "node": false, + "recipients": [ + { + "scrypt": "correct horse battery staple", + "work_factor": 16 + } + ], + "seed": "age writer scrypt, work factor 16, 150 bytes" + }, + { + "draws": [ + { + "hex": "5b5b6b6d712e400df90d31c98d1e997c", + "n": 16 + }, + { + "hex": "4dafbefe42555b08a060e034b4e69e00", + "n": 16 + }, + { + "hex": "0333571986a7957f6039cb3913b632d3", + "n": 16 + }, + { + "hex": "cdbcc0319f72a2559b4ab3055138e761", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e207363727970742054612b2b2f6b4a5657776967594f4130744f6165414120310a4c6b774b516934544957503554347755432f3569506d3071757349696a652b4d544e4e6a6a3732692b41490a2d2d2d206c6930346f4436734a38744b62674b496a794c66617a447358325570306e463575664b2f694a4c6b4c5a340acdbcc0319f72a2559b4ab3055138e761a758a20d44d785e3ebd180e02e36c5ccd88d3d", + "file_length": 184, + "file_sha256": "6fb3e4c94dd0d7267e64471bdc61dc1c2207612dc32a63cd2dc8c7f6da531dfa", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e207363727970742054612b2b2f6b4a5657776967594f4130744f6165414120310a4c6b774b516934544957503554347755432f3569506d3071757349696a652b4d544e4e6a6a3732692b41490a2d2d2d206c6930346f4436734a38744b62674b496a794c66617a447358325570306e463575664b2f694a4c6b4c5a340a", + "length": 3, + "name": "scrypt, a passphrase of one byte", + "node": true, + "recipients": [ + { + "scrypt": "p", + "work_factor": 1 + } + ], + "seed": "age writer scrypt, a passphrase of one byte" + }, + { + "draws": [ + { + "hex": "04c73279784ab6ba7a244a62270735fc", + "n": 16 + }, + { + "hex": "905ca7b2b3618c1f19e28aa98bf918e1", + "n": 16 + }, + { + "hex": "8aaa68975a2dd01874181c9f2357e277", + "n": 16 + }, + { + "hex": "3091ad7278096424ce1ad3a3fe9b52da", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20736372797074206b46796e73724e686a42385a346f7170692f6b59345120320a6345634b4754545736626b47532b6b6c38682f687956497159342f6b666e35646a2f6b6c766c4f33584b4d0a2d2d2d20462f6e31754d55585671664531554b776334744e7653454c795959686f67595268743331796b6853554a4d0a3091ad7278096424ce1ad3a3fe9b52daa7f1c94a71d16b08830b98470860eda34f5954", + "file_length": 184, + "file_sha256": "b50c46c3ef99fc6613a445ab0db386515b20f630f27fb80dfd3a804f68d71baf", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20736372797074206b46796e73724e686a42385a346f7170692f6b59345120320a6345634b4754545736626b47532b6b6c38682f687956497159342f6b666e35646a2f6b6c766c4f33584b4d0a2d2d2d20462f6e31754d55585671664531554b776334744e7653454c795959686f67595268743331796b6853554a4d0a", + "length": 3, + "name": "scrypt, a passphrase in UTF-8", + "node": true, + "recipients": [ + { + "scrypt": "contraseña de prueba ñ €", + "work_factor": 2 + } + ], + "seed": "age writer scrypt, a passphrase in UTF-8" + }, + { + "draws": [ + { + "hex": "3b54842e1f228d892e95740f184fcc8b", + "n": 16 + }, + { + "hex": "d148bd47b6bec971c6294e1a7c35ae9e", + "n": 16 + }, + { + "hex": "2b4c72c6eee88ce3d0a6d3ab04572ba9", + "n": 16 + }, + { + "hex": "1c23fa447efc0a7a54aa6f38f7083536", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203130303020353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a67765a2b525339614b3357456c6873767a4359384e3950426a667a777131546e6562637358554d632b72304d68334359473867596349424255464454657a6c610a454e2f61626677756357494e70576b4142713968736b66464d36656e494a5764646b583076394853374b75794330647164454e6a496a447279505357644852620a77752b69624d5a7a71383637353151716e536c5139647678524a343133364173754167773053596f7261380a2d2d2d203947796a44665957364f2b474369313074357232324f376f795468366533492f4c586f7042562f36705a590a1c23fa447efc0a7a54aa6f38f70835361865983726cf269cd5793a926bf9356842aa13ca7d4c9fe01f006f537fac6030", + "file_length": 371, + "file_sha256": "a152a62b5f5c00a8cd51bcfb6fac2e8e91ab19e9a664129dfbb4db4b6addb3b6", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203130303020353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a67765a2b525339614b3357456c6873767a4359384e3950426a667a777131546e6562637358554d632b72304d68334359473867596349424255464454657a6c610a454e2f61626677756357494e70576b4142713968736b66464d36656e494a5764646b583076394853374b75794330647164454e6a496a447279505357644852620a77752b69624d5a7a71383637353151716e536c5139647678524a343133364173754167773053596f7261380a2d2d2d203947796a44665957364f2b474369313074357232324f376f795468366533492f4c586f7042562f36705a590a", + "length": 16, + "name": "tlock, round 1000, 16 bytes", + "node": false, + "recipients": [ + { + "tlock": 1000 + } + ], + "seed": "age writer tlock, round 1000, 16 bytes" + }, + { + "draws": [ + { + "hex": "b9d87bed876a0ff516d289e04afb46c9", + "n": 16 + }, + { + "hex": "15f32f8ffbb58eabcbaf7f015c1c5779", + "n": 16 + }, + { + "hex": "6b3d6cbed123ac11958a7cbcf309b040", + "n": 16 + }, + { + "hex": "90455dd1fc9dccd451a2ddd73f287118", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203130303020353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a6b4d452b3743553249712b6e52774231514a62426a4d5635785353486b7452366c32386564636e6f354a7745546e6d564e417974454854756451752f3379485a0a43543534383230685a5673637438736c4f766e543273537a3879624c484157795637334e75327144373762507571624f50537936764f6466475235696a6978420a552f2f69656467364e4373314973506f714d2f44524c766e693069756a6d4a76504543664a2b776b2f55410a2d2d2d204f556742322b534535544947666a464f41326c6e704f3443344742357572647462455a7a6d6a5541634a490a90455dd1fc9dccd451a2ddd73f287118b091b1e8f31fcfc2651d17b015d77a018bdf8400b09211b7c774a5fb775ba39eb64181b6494ce62d12d1b9b2c4ad37655ac6f5e49a24d4d5a30a557519b6bc760bed3475208225960f1c73e59c596535595529ad304eb8229f5aeabcd88fd5582735f60378f92fca5b86e25512af98884a8e85d49d323c", + "file_length": 458, + "file_sha256": "10c6acaecacb15e59ba318215b0994bb5e788fef55c8bb1597b397168c11d7f0", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203130303020353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a6b4d452b3743553249712b6e52774231514a62426a4d5635785353486b7452366c32386564636e6f354a7745546e6d564e417974454854756451752f3379485a0a43543534383230685a5673637438736c4f766e543273537a3879624c484157795637334e75327144373762507571624f50537936764f6466475235696a6978420a552f2f69656467364e4373314973506f714d2f44524c766e693069756a6d4a76504543664a2b776b2f55410a2d2d2d204f556742322b534535544947666a464f41326c6e704f3443344742357572647462455a7a6d6a5541634a490a", + "length": 103, + "name": "tlock, round 1000, 103 bytes", + "node": true, + "recipients": [ + { + "tlock": 1000 + } + ], + "seed": "age writer tlock, round 1000, 103 bytes" + }, + { + "draws": [ + { + "hex": "69968118785faf75a20795f08aa87c5f", + "n": 16 + }, + { + "hex": "8465da003e30a486617f0a96d645c101", + "n": 16 + }, + { + "hex": "177ec19b8fcd2e2270bc8590c13cf0e5", + "n": 16 + }, + { + "hex": "8a9a4e5d6a5468c51f5d40439d886283", + "n": 16 + } + ], + "file_length": 2128, + "file_sha256": "64cad73af1ddd76e8fa594f83ae4aba8f3dc258b8798f8fea7fcb1368cc3c0fc", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203130303020353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a6c4a73376b52686c36565571636a6a676d37584445306138734e3366506d72544d463973677a566f564b434c326c504e736d765357464f73447265326a624d510a41637335455a31646447634553324b66687348696365684c37756b3575313264434b3348366c4c632f2f4334556d554154454149734635696979564f704c4a690a78324171374a367a735654633731435147654679315131352b48566a38594d6c514d625131442f4b344f550a2d2d2d204e69627354714b5954514f6b47384d70496630476768744356515252344b3368385753536f4e36455462410a", + "length": 1773, + "name": "tlock, round 1000, 1773 bytes", + "node": false, + "recipients": [ + { + "tlock": 1000 + } + ], + "seed": "age writer tlock, round 1000, 1773 bytes" + }, + { + "draws": [ + { + "hex": "c02f4c5ddcebed003691cd344b4326ef", + "n": 16 + }, + { + "hex": "4ccfdc9f8b4a02db0a1ffbea3142e219", + "n": 16 + }, + { + "hex": "e31f8c22e0100798a4a58339783de2f9", + "n": 16 + }, + { + "hex": "47e662cb6105182606666bd11076641e", + "n": 16 + } + ], + "file_length": 70371, + "file_sha256": "180a30c53d43f37bd571d3e69f905db731f6f4d1a9e9d117e9938ee03a8dfd88", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203130303020353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a6d4345657846667831764a2b3846686e7a69656e446c3146616e394d515469566e57737938374236706862385766354e47474463583577766b6e65596e676e4a0a4262724a6f4a497069684b784239574f6643352b6d474e437332714f664846474d49514a386357564454364e79374531573738722f6d675553417470396941310a697551706b6f3851734a5a56526e4f427342574942486262617864396354316f7259374142762f4b34764d0a2d2d2d2050506632304b4b4c4243477763546a6d3168424f4135316854425251796d6d477a6d4f79506f59776b55590a", + "length": 70000, + "name": "tlock, round 1000, 70000 bytes", + "node": false, + "recipients": [ + { + "tlock": 1000 + } + ], + "seed": "age writer tlock, round 1000, 70000 bytes" + }, + { + "draws": [ + { + "hex": "5d794aba4fac627472d1bd0ef2836861", + "n": 16 + }, + { + "hex": "1d66fadfcd42975b15e91d45ce3668c4", + "n": 16 + }, + { + "hex": "78a8658c4aafde0f17684cf3dd73ad2f", + "n": 16 + }, + { + "hex": "4db71c54a425d593808729a435ed707e", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203130303120353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a693644733765577177785767787452736a4d2b39686c4c4f4d416848774f787753455338593764654c6a4d6d4b3355427963566767772f756b4b486c374138320a423444494b46627a6b5a4c5a4f73312f6b4c677971595544354276704e7738565548304b514146346179516c4653537a786a3877546737654d4944626b6d75350a4476797a3547376a3733496b6443784d31764f7a6f482b456c4572646345766f7552474f68586c636b466f0a2d2d2d2058532b51352f4c4279736479416136624f5a772f767459314c39656f6c4566597579575747414f6937686f0a4db71c54a425d593808729a435ed707e4c000990cfd4e8e10767e5cdd918f03c", + "file_length": 355, + "file_sha256": "201c1e8e88e509b71f97f8b7dfeaa5b35e1fe5382be4773e179d439a16fb18d4", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203130303120353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a693644733765577177785767787452736a4d2b39686c4c4f4d416848774f787753455338593764654c6a4d6d4b3355427963566767772f756b4b486c374138320a423444494b46627a6b5a4c5a4f73312f6b4c677971595544354276704e7738565548304b514146346179516c4653537a786a3877546737654d4944626b6d75350a4476797a3547376a3733496b6443784d31764f7a6f482b456c4572646345766f7552474f68586c636b466f0a2d2d2d2058532b51352f4c4279736479416136624f5a772f767459314c39656f6c4566597579575747414f6937686f0a", + "length": 0, + "name": "tlock, round 1001, 0 bytes", + "node": false, + "recipients": [ + { + "tlock": 1001 + } + ], + "seed": "age writer tlock, round 1001, 0 bytes" + }, + { + "draws": [ + { + "hex": "9dff009c7a9782e76ac11b14c224958b", + "n": 16 + }, + { + "hex": "b80c217ab0521572d7dbf73f3a32e625", + "n": 16 + }, + { + "hex": "25941b2301a19d7dcc943f9c28d6c5d6", + "n": 16 + }, + { + "hex": "f9936b3802a7f040027b80bfadd052cf", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203120353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a72596d474f6e4f524f79713434396e485854347a4a72576564414d6e47715848454364353972784832556a7a324d4a4f494566364d5737783136617831656e750a41393131346c4b36387437434b4d506b633151544d6275675a3938763944526f6467774c7832507743357674586a4871364550704459794f75765255354543520a386c50346e654c4b69334272484a314f7256417747444f524438726f6c7741424f386d43443564574f69490a2d2d2d20577a424c6f54365042742b4f5379324757506e2b6f6764687838747a564c774a6876686455743959354a490af9936b3802a7f040027b80bfadd052cf4ada302f51cbae351dbc7f6a70e88ef4e36ce9fbfd4765f92e267ba6ef0b18b370e35ce087acdd6b9d0d4a0e1f941c7e08b369248ee09c79d0d1e21edd3eb770935678c3736f1e42b04d4b61e05cf740edcf5f1d0ff7a45daa9b19621df01d0677a925050a3a3efcd718d9cb895bcd5aa3cebaffce1ef7", + "file_length": 455, + "file_sha256": "f57e4b1816a100a71173e30cd017913a8b39deb2a789962d3117f02345d95a9d", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203120353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a72596d474f6e4f524f79713434396e485854347a4a72576564414d6e47715848454364353972784832556a7a324d4a4f494566364d5737783136617831656e750a41393131346c4b36387437434b4d506b633151544d6275675a3938763944526f6467774c7832507743357674586a4871364550704459794f75765255354543520a386c50346e654c4b69334272484a314f7256417747444f524438726f6c7741424f386d43443564574f69490a2d2d2d20577a424c6f54365042742b4f5379324757506e2b6f6764687838747a564c774a6876686455743959354a490a", + "length": 103, + "name": "tlock, round 1, 103 bytes", + "node": true, + "recipients": [ + { + "tlock": 1 + } + ], + "seed": "age writer tlock, round 1, 103 bytes" + }, + { + "draws": [ + { + "hex": "8243cea3c5feeb68bc8a5d12baa3b56a", + "n": 16 + }, + { + "hex": "22e7c92baa6c3e8a26ba01fd02df2727", + "n": 16 + }, + { + "hex": "ba180ef0f30464caa22edc5abf8bfbfa", + "n": 16 + }, + { + "hex": "3d84dd8e2ab33e86de09723f57343648", + "n": 16 + } + ], + "file": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b20383339303331363538313120353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a6b446a655953694a6a4150496670464c33396155714b54634e6975343276735639396d564f632b373771323839424967324362343339376141654746797267680a426b62723073516950656d5559537435704c6f4f6e4e3857493745703644527632726d4937504a7368712b5a7574677a79535731513669633549756f487051470a6450784576584a43487a794853747336376d72793731546a326f6d6d302f496375532b3671626978544e6b0a2d2d2d20464e51446c44567a44703073684238326e725a49656b7538755178496b545866757371766a61324434616f0a3d84dd8e2ab33e86de09723f573436481005a050705baa761710839a11d3795640c573974f", + "file_length": 367, + "file_sha256": "80bda9da7a9eb58e9a63d26b9a076624f65dc6c8298d6627e9125766acc5ddbc", + "header": "6167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b20383339303331363538313120353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a6b446a655953694a6a4150496670464c33396155714b54634e6975343276735639396d564f632b373771323839424967324362343339376141654746797267680a426b62723073516950656d5559537435704c6f4f6e4e3857493745703644527632726d4937504a7368712b5a7574677a79535731513669633549756f487051470a6450784576584a43487a794853747336376d72793731546a326f6d6d302f496375532b3671626978544e6b0a2d2d2d20464e51446c44567a44703073684238326e725a49656b7538755178496b545866757371766a61324434616f0a", + "length": 5, + "name": "tlock, round 83903165811, 5 bytes", + "node": false, + "recipients": [ + { + "tlock": 83903165811 + } + ], + "seed": "age writer tlock, round 83903165811, 5 bytes" + } + ], + "errors": [ + { + "draws": [ + { + "hex": "35fbfe703a358db295e84f52f2a6223e", + "n": 16 + } + ], + "error": "no recipients specified", + "name": "no recipients", + "node": true, + "recipients": [], + "seed": "age writer error no recipients" + }, + { + "draws": [ + { + "hex": "ddbc98f6be663dc5e7f19ee1e6ae0362", + "n": 16 + }, + { + "hex": "ca374f473698ac0b73917e6f83b102d1ad81d94c246b803c19e180cd6d663cdb", + "n": 32 + }, + { + "hex": "22cd83ff11198b92c0718fa42faab4bd", + "n": 16 + }, + { + "hex": "8439e0f05de55f7f24ebb8a8a4b6c98f", + "n": 16 + } + ], + "error": "incompatible recipients: [] and [\"8439e0f05de55f7f24ebb8a8a4b6c98f\"] can't be mixed", + "name": "x25519, then scrypt", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1WF7V982KYMT88TJGFYJULXYGNUF7SE6ZF0FUK0FTL4QECWDMZEYSTR6YER", + "x25519": "age1sryum0xjsn9qa005895ka9dz78qxfrklr0fdqlxh7hc08xtwcczq0fdsn9" + }, + { + "scrypt": "pass", + "work_factor": 1 + } + ], + "seed": "age writer error x25519, then scrypt" + }, + { + "draws": [ + { + "hex": "23cf1e450dbb5cc2d69172534f8933a8", + "n": 16 + }, + { + "hex": "4d29bd9822d1c012a8161e6efc67fbf8", + "n": 16 + }, + { + "hex": "74d8a5d2a3903aea0810219fb000696e", + "n": 16 + }, + { + "hex": "60200e2bec3c12298d12cd9e00be0292a70c0efbf10f54dea6d69b4ac4f8a3bf", + "n": 32 + } + ], + "error": "incompatible recipients: [\"74d8a5d2a3903aea0810219fb000696e\"] and [] can't be mixed", + "name": "scrypt, then x25519", + "node": true, + "recipients": [ + { + "scrypt": "pass", + "work_factor": 1 + }, + { + "identity": "AGE-SECRET-KEY-1WF7V982KYMT88TJGFYJULXYGNUF7SE6ZF0FUK0FTL4QECWDMZEYSTR6YER", + "x25519": "age1sryum0xjsn9qa005895ka9dz78qxfrklr0fdqlxh7hc08xtwcczq0fdsn9" + } + ], + "seed": "age writer error scrypt, then x25519" + }, + { + "draws": [ + { + "hex": "aa539609b9777613c4307503e66c8bdd", + "n": 16 + }, + { + "hex": "725ecf529d31b247b583da94f74fb69a", + "n": 16 + }, + { + "hex": "d54ae50e9d023fbe96325326fea0c17d", + "n": 16 + }, + { + "hex": "1684e8cf4b31635dc750e0fb5f767c55", + "n": 16 + }, + { + "hex": "01bf6bfed84dcb66e99a0bf933603e93", + "n": 16 + } + ], + "error": "incompatible recipients: [\"d54ae50e9d023fbe96325326fea0c17d\"] and [\"01bf6bfed84dcb66e99a0bf933603e93\"] can't be mixed", + "name": "scrypt twice", + "node": true, + "recipients": [ + { + "scrypt": "pass", + "work_factor": 1 + }, + { + "scrypt": "pass", + "work_factor": 1 + } + ], + "seed": "age writer error scrypt twice" + }, + { + "draws": [ + { + "hex": "36b0119a398f8f7cf65a3eb01d4f5fb9", + "n": 16 + }, + { + "hex": "ad9cb381bbd0abd91421179f6e457e0f278bfceef3821be09eef68315772f0b1", + "n": 32 + }, + { + "hex": "2dadb6b31356d5ff9b4d3e0486d73422c67e4c43511aa30c1c664d15f976e51f", + "n": 32 + }, + { + "hex": "db69d3a9c5a7e13c1ec11edeca193fad", + "n": 16 + }, + { + "hex": "77440aa8e52b5a0133bc3724c2952d8d", + "n": 16 + } + ], + "error": "incompatible recipients: [] and [\"77440aa8e52b5a0133bc3724c2952d8d\"] can't be mixed", + "name": "two x25519, then scrypt", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1WF7V982KYMT88TJGFYJULXYGNUF7SE6ZF0FUK0FTL4QECWDMZEYSTR6YER", + "x25519": "age1sryum0xjsn9qa005895ka9dz78qxfrklr0fdqlxh7hc08xtwcczq0fdsn9" + }, + { + "identity": "AGE-SECRET-KEY-19S0F6EW05NAS0EP4UQPG4SGAQ4XL8NHKMAQWXSZ3PM2LU4WFXLPSVXUJUT", + "x25519": "age1y397rvnmn2rrz6sjcwv7pskprm4ejk3ldwxcaqlelyd836z5wy4qy0yqqq" + }, + { + "scrypt": "pass", + "work_factor": 1 + } + ], + "seed": "age writer error two x25519, then scrypt" + }, + { + "draws": [ + { + "hex": "37a049ed6281725291a7b37653956660", + "n": 16 + }, + { + "hex": "f014774908089aa4c33d2934a694d19e", + "n": 16 + }, + { + "hex": "a97700ab7d269406fa18a06dcc30c1e1", + "n": 16 + }, + { + "hex": "1836ce4aac3bb42867279ea629ad493d0b17fc524f24d90cd96dd8b1a8930a72", + "n": 32 + } + ], + "error": "incompatible recipients: [\"datekeys-tlock-a97700ab7d269406fa18a06dcc30c1e1\"] and [] can't be mixed", + "name": "tlock, then x25519", + "node": true, + "recipients": [ + { + "tlock": 1000 + }, + { + "identity": "AGE-SECRET-KEY-1WF7V982KYMT88TJGFYJULXYGNUF7SE6ZF0FUK0FTL4QECWDMZEYSTR6YER", + "x25519": "age1sryum0xjsn9qa005895ka9dz78qxfrklr0fdqlxh7hc08xtwcczq0fdsn9" + } + ], + "seed": "age writer error tlock, then x25519" + }, + { + "draws": [ + { + "hex": "060d1267c59bf3ce24a17fda022e8786", + "n": 16 + }, + { + "hex": "fca15698a1f518e8f31922a41d657ae3d4d3b81171c7f1e780f7bdb203fac2a8", + "n": 32 + }, + { + "hex": "2049e368dc182f105f3365eb1ea8ee89", + "n": 16 + }, + { + "hex": "e6ddd234ea95833025e00c03f4c61f1f", + "n": 16 + } + ], + "error": "incompatible recipients: [] and [\"datekeys-tlock-e6ddd234ea95833025e00c03f4c61f1f\"] can't be mixed", + "name": "x25519, then tlock", + "node": false, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1WF7V982KYMT88TJGFYJULXYGNUF7SE6ZF0FUK0FTL4QECWDMZEYSTR6YER", + "x25519": "age1sryum0xjsn9qa005895ka9dz78qxfrklr0fdqlxh7hc08xtwcczq0fdsn9" + }, + { + "tlock": 1000 + } + ], + "seed": "age writer error x25519, then tlock" + }, + { + "draws": [ + { + "hex": "33cb16283b4268fb8f220c046bd15916", + "n": 16 + }, + { + "hex": "1684d2e9497f0612c33569cb69ebd664", + "n": 16 + }, + { + "hex": "2a242d84fa0610fb6cd817b7e4152b01", + "n": 16 + }, + { + "hex": "771c5639034754153a0a969d0b18d604", + "n": 16 + }, + { + "hex": "a6b987af6c35831e31d332f8a2cd53cf", + "n": 16 + } + ], + "error": "incompatible recipients: [\"datekeys-tlock-2a242d84fa0610fb6cd817b7e4152b01\"] and [\"datekeys-tlock-a6b987af6c35831e31d332f8a2cd53cf\"] can't be mixed", + "name": "tlock twice", + "node": false, + "recipients": [ + { + "tlock": 1000 + }, + { + "tlock": 1000 + } + ], + "seed": "age writer error tlock twice" + }, + { + "draws": [ + { + "hex": "8942d1d9b6c4fba13d1802f2d6c8d40a", + "n": 16 + }, + { + "hex": "fc47119bd5aeda9f1d2cd8d89cc008d3", + "n": 16 + }, + { + "hex": "c578e15f31bf93d7140a8fbee3a8ae16", + "n": 16 + }, + { + "hex": "7e9d9b87225b2b1f9421716f41b2687a", + "n": 16 + }, + { + "hex": "95ea63f3bfb65ecbd2b780c4f35b0dd8", + "n": 16 + } + ], + "error": "incompatible recipients: [\"c578e15f31bf93d7140a8fbee3a8ae16\"] and [\"datekeys-tlock-95ea63f3bfb65ecbd2b780c4f35b0dd8\"] can't be mixed", + "name": "scrypt, then tlock", + "node": false, + "recipients": [ + { + "scrypt": "pass", + "work_factor": 1 + }, + { + "tlock": 1000 + } + ], + "seed": "age writer error scrypt, then tlock" + }, + { + "draws": [ + { + "hex": "93791c852953ad94e17acc6191271111", + "n": 16 + }, + { + "hex": "4c4019b40e5932b1815050a55e84b3697312cf42371af5f7b202ba6423c3f91f", + "n": 32 + } + ], + "error": "failed to wrap key for recipient #0: crypto/ecdh: bad X25519 remote ECDH input: low order point", + "name": "x25519 of low order, u = 0", + "node": true, + "recipients": [ + { + "x25519": "age1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq5cu47z" + } + ], + "seed": "age writer error x25519 of low order, u = 0" + }, + { + "draws": [ + { + "hex": "203beed5fd55c35dff976709eac77d2b", + "n": 16 + }, + { + "hex": "df1cdb9dd9f18133eddddf07f64294396b5a7307b63e77a3824f4b102385e5f9", + "n": 32 + } + ], + "error": "failed to wrap key for recipient #0: crypto/ecdh: bad X25519 remote ECDH input: low order point", + "name": "x25519 of low order, u = 1", + "node": true, + "recipients": [ + { + "x25519": "age1qyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj7vrya" + } + ], + "seed": "age writer error x25519 of low order, u = 1" + }, + { + "draws": [ + { + "hex": "09803a654e08f8bb4561a2f87138d18d", + "n": 16 + }, + { + "hex": "cb8b91d0579581ab1f7e2558cbe1daddb8abc073c8084c20f6efbb249eed4a54", + "n": 32 + } + ], + "error": "failed to wrap key for recipient #0: crypto/ecdh: bad X25519 remote ECDH input: low order point", + "name": "x25519 of low order, u = order 8, a", + "node": true, + "recipients": [ + { + "x25519": "age1ur4h5lpmgxu2u9jku0a0r87ydtdqnr0tnsetrlvxvgz3vh6fhqqqzyt4v9" + } + ], + "seed": "age writer error x25519 of low order, u = order 8, a" + }, + { + "draws": [ + { + "hex": "f0c27da0c9a8e74a8562a6cc61c6bdbf", + "n": 16 + }, + { + "hex": "1e81f5e7dc2cf8e3a3b171ec20c13ad17426738ca0306b2079447f925a5197a5", + "n": 32 + } + ], + "error": "failed to wrap key for recipient #0: crypto/ecdh: bad X25519 remote ECDH input: low order point", + "name": "x25519 of low order, u = order 8, b", + "node": true, + "recipients": [ + { + "x25519": "age1t7wft09r2zxzfvwsk92eeql0tvzyghxytqwgapkcyf8dm5ylz9ts6wm9s8" + } + ], + "seed": "age writer error x25519 of low order, u = order 8, b" + }, + { + "draws": [ + { + "hex": "d19fdb63ae50a521c1539836aba44d73", + "n": 16 + }, + { + "hex": "0d29ee07847bc3297790cfb44ac2c3a52d91320ce046b18424db60bc4c200ffe", + "n": 32 + } + ], + "error": "failed to wrap key for recipient #0: crypto/ecdh: bad X25519 remote ECDH input: low order point", + "name": "x25519 of low order, u = p - 1", + "node": true, + "recipients": [ + { + "x25519": "age1anlllllllllllllllllllllllllllllllllllllllllllllllals4n2t7m" + } + ], + "seed": "age writer error x25519 of low order, u = p - 1" + }, + { + "draws": [ + { + "hex": "81a8ab1e72e57ef83fc693bcb3dbfcd8", + "n": 16 + }, + { + "hex": "bc23c37f0787005a128e3fb7c16e05764643d6353bdc87216807bbbf319cc6a9", + "n": 32 + } + ], + "error": "failed to wrap key for recipient #0: crypto/ecdh: bad X25519 remote ECDH input: low order point", + "name": "x25519 of low order, u = p", + "node": true, + "recipients": [ + { + "x25519": "age1ahlllllllllllllllllllllllllllllllllllllllllllllllalsn46ayy" + } + ], + "seed": "age writer error x25519 of low order, u = p" + }, + { + "draws": [ + { + "hex": "c595bbcb3c2e3dd4c8d4ca8701716011", + "n": 16 + }, + { + "hex": "713a3ac5ec7b3be77414d0a726eb934f145a85354b70d801beab54111cc98ebf", + "n": 32 + } + ], + "error": "failed to wrap key for recipient #0: crypto/ecdh: bad X25519 remote ECDH input: low order point", + "name": "x25519 of low order, u = p + 1", + "node": true, + "recipients": [ + { + "x25519": "age1amlllllllllllllllllllllllllllllllllllllllllllllllalselrwrv" + } + ], + "seed": "age writer error x25519 of low order, u = p + 1" + }, + { + "draws": [ + { + "hex": "9a81da927a3e56e76020bc865494bb6e", + "n": 16 + }, + { + "hex": "6c415542a20ba4bb4d18c876451994d170210e14e5c755d54e2630eea50b47c8", + "n": 32 + } + ], + "error": "failed to wrap key for recipient #0: crypto/ecdh: bad X25519 remote ECDH input: low order point", + "name": "x25519 of low order, u = 0 with bit 255 set", + "node": true, + "recipients": [ + { + "x25519": "age1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzqqsuwj9m" + } + ], + "seed": "age writer error x25519 of low order, u = 0 with bit 255 set" + }, + { + "draws": [ + { + "hex": "8c36887c8461c4f0a21319ce52f7faf4", + "n": 16 + }, + { + "hex": "e7d729de72dcb0a32fe119ba883cad4d10ebb34b3c59a163d47eb284c587505c", + "n": 32 + }, + { + "hex": "75054569cbbe0d28ad05d77c58adb5b220443b6129a7bf363dcca3c9aee0474c", + "n": 32 + } + ], + "error": "failed to wrap key for recipient #1: crypto/ecdh: bad X25519 remote ECDH input: low order point", + "name": "x25519 of low order after another one", + "node": true, + "recipients": [ + { + "identity": "AGE-SECRET-KEY-1WF7V982KYMT88TJGFYJULXYGNUF7SE6ZF0FUK0FTL4QECWDMZEYSTR6YER", + "x25519": "age1sryum0xjsn9qa005895ka9dz78qxfrklr0fdqlxh7hc08xtwcczq0fdsn9" + }, + { + "x25519": "age1qyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj7vrya" + } + ], + "seed": "age writer error x25519 of low order after another one" + } + ], + "generate": [ + { + "draws": [ + { + "hex": "b8846643d21c4d86d884a30fe79542bcd436f6690e2d7442b160a6e1d56bc774", + "n": 32 + } + ], + "identity": "AGE-SECRET-KEY-1HZZXVS7JR3XCDKYY5V87092ZHN2RDANFPCKHGS43VZNWR4TTCA6Q8YA2C8", + "raw": "b8846643d21c4d86d884a30fe79542bcd436f6690e2d7442b160a6e1d56bc774", + "recipient": "age1dvas0mgpp7nrws0t7zwmt8r65dq554uk23h50j3qufsm4g4x8ezs34a4st", + "seed": "generate 0" + }, + { + "draws": [ + { + "hex": "53bf67097574d299330ef66d6058cea8b9a51514b3d5167574f69164d0eeaa39", + "n": 32 + } + ], + "identity": "AGE-SECRET-KEY-12WLKWZT4WNFFJVCW7EKKQKXW4ZU629G5K023VAT576GKF58W4GUSGLDRSQ", + "raw": "53bf67097574d299330ef66d6058cea8b9a51514b3d5167574f69164d0eeaa39", + "recipient": "age1ds2en8n74gyrp5tl082wp2q49gvuwjemcfu3s9wsv3tg6t0scgeqwlj3qn", + "seed": "generate 1" + }, + { + "draws": [ + { + "hex": "1305ce4d3443e240074cdb058b972f4ceb5fe8e37cfbee30ab20fab26c2313b8", + "n": 32 + } + ], + "identity": "AGE-SECRET-KEY-1ZVZUUNF5G03YQP6VMVZCH9E0FN44L68R0NA7UV9TYRATYMPRZWUQ4XPXY5", + "raw": "1305ce4d3443e240074cdb058b972f4ceb5fe8e37cfbee30ab20fab26c2313b8", + "recipient": "age1atmh9366d5h9knj9sncq5fu4r4u8ghhga6z2fjhkteyw5cy2yftq9ma5su", + "seed": "generate 2" + }, + { + "draws": [ + { + "hex": "328cf7a41a2b403d73fc73a773c2477399af09a6eae02945e7debf8d319d13dc", + "n": 32 + } + ], + "identity": "AGE-SECRET-KEY-1X2X00FQ69DQR6ULUWWNH8SJ8WWV67ZDXATSZJ308M6LC6VVAZ0WQVTUNQK", + "raw": "328cf7a41a2b403d73fc73a773c2477399af09a6eae02945e7debf8d319d13dc", + "recipient": "age1ssde79c49ah5shtedlkkhpqg8xaugt97sg42h8kw307nexar3guqhfl7fs", + "seed": "generate 3" + } + ], + "go": "go1.26.8", + "lengths": { + "payload_age": [ + { + "length": 200, + "p": 0 + }, + { + "length": 201, + "p": 1 + }, + { + "length": 65736, + "p": 65536 + }, + { + "length": 65753, + "p": 65537 + }, + { + "length": 4296016056, + "p": 4294967296 + }, + { + "length": 1099780063435, + "p": 1099511627779 + } + ], + "stream": [ + { + "length": 16, + "n": 0 + }, + { + "length": 17, + "n": 1 + }, + { + "length": 65551, + "n": 65535 + }, + { + "length": 65552, + "n": 65536 + }, + { + "length": 65569, + "n": 65537 + }, + { + "length": 131104, + "n": 131072 + }, + { + "length": 131121, + "n": 131073 + }, + { + "length": 1048832, + "n": 1048576 + }, + { + "length": 1074003985, + "n": 1073741825 + }, + { + "length": 5001220704, + "n": 5000000000 + }, + { + "length": 1099780063255, + "n": 1099511627783 + } + ] + }, + "parse": [ + { + "input": "age1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5swz2e83", + "raw": "6d39790161dc50dc2e8af7202a1f0f6984e846dadfc76a051dc795fe36d45869", + "string": "age1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5swz2e83" + }, + { + "error": "malformed recipient \"AGE1D5UHJQTPM3GDCT527USZ58C0DXZWS3K6MLRK5PGAC72LUDK5TP5SWZ2E83\": invalid type \"AGE\"", + "input": "AGE1D5UHJQTPM3GDCT527USZ58C0DXZWS3K6MLRK5PGAC72LUDK5TP5SWZ2E83" + }, + { + "error": "malformed recipient \"age1d5uhjqTPM3GDCT527USZ58C0DXZWS3K6MLRK5PGAC72LUDK5TP5SWZ2E83\": mixed case", + "input": "age1d5uhjqTPM3GDCT527USZ58C0DXZWS3K6MLRK5PGAC72LUDK5TP5SWZ2E83" + }, + { + "error": "malformed recipient \"age1pq1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5sn6yj60\": invalid type \"age1pq\"", + "input": "age1pq1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5sn6yj60" + }, + { + "error": "malformed recipient \"age1tag1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5sxxgzfn\": invalid type \"age1tag\"", + "input": "age1tag1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5sxxgzfn" + }, + { + "error": "malformed recipient \"AGE1D5UHJQTPM3GDCT527USZ58C0DXZWS3K6MLRK5PGAC72LUDK5TP5SWZ2E83\": invalid type \"AGE\"", + "input": "AGE1D5UHJQTPM3GDCT527USZ58C0DXZWS3K6MLRK5PGAC72LUDK5TP5SWZ2E83" + }, + { + "error": "malformed recipient \"age1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tq8wvpm8\": invalid X25519 public key", + "input": "age1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tq8wvpm8" + }, + { + "error": "malformed recipient \"age1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5sqq37wjt\": invalid X25519 public key", + "input": "age1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5sqq37wjt" + }, + { + "error": "malformed recipient \"age19l388n\": invalid X25519 public key", + "input": "age19l388n" + }, + { + "error": "malformed recipient \"age1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5swz2e8q\": invalid checksum", + "input": "age1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5swz2e8q" + }, + { + "error": "malformed recipient \"\": separator '1' at invalid position: pos=-1, len=0", + "input": "" + }, + { + "error": "malformed recipient \"age1\": separator '1' at invalid position: pos=3, len=4", + "input": "age1" + }, + { + "error": "malformed recipient \"age1qqqqqq\": invalid checksum", + "input": "age1qqqqqq" + }, + { + "error": "malformed recipient \"AGE-SECRET-KEY-18CK0YC5ARQA4X05U6J8QJWPRGNAS0S5XCYSM36P0J74QY67R7EDSG9ZVDM\": invalid type \"AGE-SECRET-KEY-\"", + "input": "AGE-SECRET-KEY-18CK0YC5ARQA4X05U6J8QJWPRGNAS0S5XCYSM36P0J74QY67R7EDSG9ZVDM" + }, + { + "error": "malformed recipient \" age1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5swz2e83\": invalid character human-readable part: s[0]=32", + "input": " age1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5swz2e83" + }, + { + "error": "malformed recipient \"age1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5swz2e83\\n\": invalid character data part: s[58]=10", + "input": "age1d5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5swz2e83\n" + }, + { + "error": "malformed recipient \"age1é5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5swz2e83\": invalid character data part: s[0]=233", + "input": "age1é5uhjqtpm3gdct527usz58c0dxzws3k6mlrk5pgac72ludk5tp5swz2e83" + }, + { + "input": "age1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq5cu47z", + "raw": "0000000000000000000000000000000000000000000000000000000000000000", + "string": "age1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq5cu47z" + } + ], + "permute": [ + { + "n": 0, + "order": [], + "reads": 0, + "seed": "permute 0 0" + }, + { + "n": 1, + "order": [ + 0 + ], + "reads": 0, + "seed": "permute 1 1" + }, + { + "n": 2, + "order": [ + 0, + 1 + ], + "reads": 1, + "seed": "permute 2 2" + }, + { + "n": 3, + "order": [ + 2, + 0, + 1 + ], + "reads": 2, + "seed": "permute 3 3" + }, + { + "n": 5, + "order": [ + 0, + 1, + 4, + 2, + 3 + ], + "reads": 4, + "seed": "permute 5 4" + }, + { + "n": 16, + "order": [ + 5, + 3, + 14, + 12, + 15, + 2, + 0, + 10, + 11, + 4, + 1, + 13, + 8, + 9, + 6, + 7 + ], + "reads": 18, + "seed": "permute 16 5" + }, + { + "n": 16, + "order": [ + 14, + 11, + 9, + 8, + 13, + 5, + 6, + 1, + 0, + 3, + 12, + 4, + 15, + 7, + 2, + 10 + ], + "reads": 29, + "seed": "permute 16 6" + }, + { + "n": 16, + "order": [ + 6, + 2, + 14, + 8, + 13, + 0, + 3, + 4, + 10, + 12, + 1, + 7, + 11, + 15, + 9, + 5 + ], + "reads": 19, + "seed": "permute 16 7" + }, + { + "n": 16, + "order": [ + 0, + 13, + 15, + 4, + 12, + 9, + 5, + 6, + 2, + 7, + 11, + 14, + 10, + 8, + 3, + 1 + ], + "reads": 19, + "seed": "permute 16 8" + }, + { + "n": 40, + "order": [ + 31, + 36, + 32, + 37, + 5, + 25, + 3, + 38, + 14, + 39, + 19, + 11, + 12, + 35, + 15, + 30, + 16, + 28, + 1, + 24, + 10, + 4, + 0, + 20, + 23, + 34, + 29, + 21, + 22, + 7, + 9, + 6, + 13, + 8, + 2, + 33, + 27, + 18, + 26, + 17 + ], + "reads": 55, + "seed": "permute 40 9" + } + ], + "rand_int": [ + { + "n": 1, + "next": "d7641aa2", + "reads": 0, + "results": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "seed": "rand.Int 1" + }, + { + "n": 2, + "next": "cea430d5", + "reads": 24, + "results": [ + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + "seed": "rand.Int 2" + }, + { + "n": 3, + "next": "d0b06b61", + "reads": 29, + "results": [ + 1, + 2, + 2, + 0, + 2, + 0, + 1, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 0, + 1, + 0, + 1 + ], + "seed": "rand.Int 3" + }, + { + "n": 5, + "next": "ff81fe80", + "reads": 32, + "results": [ + 4, + 1, + 4, + 3, + 2, + 2, + 0, + 2, + 3, + 4, + 2, + 0, + 4, + 4, + 0, + 2, + 3, + 4, + 1, + 2, + 3, + 3, + 2, + 4 + ], + "seed": "rand.Int 5" + }, + { + "n": 7, + "next": "791589eb", + "reads": 28, + "results": [ + 4, + 1, + 4, + 6, + 1, + 6, + 5, + 2, + 2, + 2, + 5, + 2, + 3, + 1, + 3, + 3, + 6, + 5, + 6, + 5, + 0, + 1, + 1, + 2 + ], + "seed": "rand.Int 7" + }, + { + "n": 8, + "next": "46f24bb7", + "reads": 24, + "results": [ + 2, + 7, + 6, + 2, + 1, + 0, + 1, + 4, + 1, + 7, + 2, + 6, + 5, + 4, + 2, + 1, + 1, + 4, + 4, + 5, + 3, + 6, + 3, + 3 + ], + "seed": "rand.Int 8" + }, + { + "n": 10, + "next": "90513a59", + "reads": 37, + "results": [ + 6, + 7, + 7, + 1, + 5, + 4, + 5, + 3, + 9, + 2, + 1, + 7, + 6, + 2, + 9, + 5, + 4, + 2, + 7, + 7, + 2, + 6, + 5, + 9 + ], + "seed": "rand.Int 10" + }, + { + "n": 16, + "next": "c0593f6c", + "reads": 24, + "results": [ + 14, + 13, + 2, + 6, + 5, + 4, + 13, + 14, + 5, + 1, + 13, + 0, + 10, + 12, + 9, + 13, + 2, + 7, + 14, + 1, + 3, + 1, + 11, + 9 + ], + "seed": "rand.Int 16" + }, + { + "n": 17, + "next": "54323945", + "reads": 36, + "results": [ + 16, + 15, + 1, + 2, + 3, + 9, + 13, + 13, + 10, + 16, + 10, + 15, + 2, + 7, + 16, + 10, + 6, + 15, + 11, + 10, + 4, + 1, + 8, + 4 + ], + "seed": "rand.Int 17" + }, + { + "n": 100, + "next": "65fde867", + "reads": 30, + "results": [ + 95, + 48, + 8, + 36, + 48, + 56, + 40, + 67, + 8, + 50, + 57, + 35, + 75, + 46, + 59, + 12, + 98, + 12, + 26, + 22, + 66, + 73, + 62, + 75 + ], + "seed": "rand.Int 100" + }, + { + "n": 255, + "next": "dafbd44c", + "reads": 24, + "results": [ + 231, + 218, + 198, + 186, + 51, + 49, + 229, + 108, + 117, + 181, + 67, + 162, + 77, + 211, + 227, + 146, + 105, + 251, + 80, + 45, + 218, + 145, + 124, + 148 + ], + "seed": "rand.Int 255" + }, + { + "n": 256, + "next": "fe035d7a", + "reads": 24, + "results": [ + 153, + 185, + 66, + 237, + 116, + 137, + 96, + 17, + 220, + 88, + 101, + 133, + 124, + 53, + 183, + 93, + 98, + 192, + 168, + 139, + 42, + 7, + 190, + 252 + ], + "seed": "rand.Int 256" + }, + { + "n": 257, + "next": "93eecf29", + "reads": 52, + "results": [ + 243, + 129, + 51, + 121, + 171, + 190, + 97, + 134, + 24, + 168, + 92, + 187, + 72, + 81, + 191, + 242, + 18, + 192, + 133, + 0, + 92, + 184, + 111, + 61 + ], + "seed": "rand.Int 257" + }, + { + "n": 1000, + "next": "961c7e81", + "reads": 24, + "results": [ + 558, + 425, + 982, + 57, + 638, + 876, + 877, + 483, + 416, + 605, + 647, + 442, + 188, + 927, + 469, + 36, + 109, + 348, + 779, + 500, + 653, + 364, + 944, + 282 + ], + "seed": "rand.Int 1000" + }, + { + "n": 65535, + "next": "62dd3270", + "reads": 24, + "results": [ + 53212, + 23833, + 62736, + 356, + 20039, + 59960, + 48552, + 63194, + 16292, + 27667, + 61932, + 1827, + 36864, + 11121, + 61783, + 6676, + 56462, + 60646, + 2800, + 19489, + 28564, + 20034, + 22851, + 23809 + ], + "seed": "rand.Int 65535" + }, + { + "n": 65536, + "next": "25e2ee90", + "reads": 24, + "results": [ + 61215, + 1134, + 40209, + 53075, + 27125, + 17169, + 23838, + 28242, + 41832, + 28378, + 36454, + 25457, + 51360, + 45928, + 22745, + 15081, + 6271, + 44600, + 40709, + 52763, + 42639, + 21365, + 35504, + 5672 + ], + "seed": "rand.Int 65536" + }, + { + "n": 65537, + "next": "07197a0e", + "reads": 62, + "results": [ + 6330, + 37269, + 61867, + 61924, + 38011, + 59121, + 12012, + 53841, + 6680, + 2475, + 34335, + 19458, + 65132, + 44014, + 58066, + 44638, + 9018, + 65468, + 30518, + 10656, + 48816, + 44486, + 44462, + 4772 + ], + "seed": "rand.Int 65537" + }, + { + "n": 2147483647, + "next": "69787176", + "reads": 24, + "results": [ + 1953821498, + 1610665045, + 860284701, + 2007885363, + 1726992299, + 541303746, + 1004213885, + 234887347, + 1553371325, + 758810222, + 1085064212, + 1127294859, + 261161992, + 1436800054, + 393148454, + 406934163, + 1144562273, + 1358969308, + 312543586, + 471987899, + 682008448, + 1712457552, + 1018373197, + 1227332174 + ], + "seed": "rand.Int 2147483647" + }, + { + "n": 2147483648, + "next": "19efe54e", + "reads": 24, + "results": [ + 814017332, + 408436705, + 12515141, + 911417525, + 834105877, + 418342539, + 1367511616, + 2057796696, + 874059916, + 1233621367, + 496582336, + 298353907, + 1538520607, + 630971689, + 638143396, + 1497532899, + 1636178625, + 921823853, + 1897970489, + 1416867960, + 864593994, + 1551452535, + 1905129986, + 2001845299 + ], + "seed": "rand.Int 2147483648" + }, + { + "n": 4294967295, + "next": "5c311580", + "reads": 24, + "results": [ + 535033687, + 1119850738, + 2578729599, + 4036402583, + 1299224218, + 4006130910, + 4161464044, + 3577850666, + 39859977, + 339456922, + 2247644136, + 1468600166, + 2506557933, + 2634639506, + 3825571866, + 842979453, + 1953130734, + 3851069660, + 623319842, + 3564674898, + 2836171773, + 3720306395, + 1023286849, + 1348176429 + ], + "seed": "rand.Int 4294967295" + }, + { + "n": 4294967296, + "next": "6c8c8423", + "reads": 24, + "results": [ + 2133763047, + 221013904, + 66085701, + 3669188063, + 4092111412, + 1548395288, + 2202156111, + 1483878898, + 2256944894, + 917109306, + 2058949628, + 1272088366, + 2291826127, + 783005576, + 82999941, + 887549640, + 1072679315, + 697502977, + 3137804610, + 1304588987, + 3968160360, + 2130932439, + 4243399999, + 782559295 + ], + "seed": "rand.Int 4294967296" + } + ], + "seeded": [ + { + "fills": [ + 0, + 1, + 15, + 16, + 32, + 63, + 64, + 65, + 200 + ], + "hex": "98c37c1a7542eb45daa0d48d9c1adee0f41178a94d590b96ae0f9595e1c3008fbd116fd1892c0998d85a974f5b261248ea8e891e6ce61d5790a1a49be7c5440e02dd2ff0abcd04e2e191fdc2235a14eed7ce2350b73a16b3b7ebcc8a9ca9b59594d4f3310e304d4c9ed667f82592db80f66408c3eca9f5e2a09d73f13c837b793a88f4d340aff24a6eb715d09ace6d34e5abb6369e1800f9da8f63909f869d92edca517412de808ea59c3cf397a7bfbca092760d5fedc4c2925d1272d956d9ba6d07f9c585c40ba0927943388bcd5f87870a2e9c291c28ef9ea9bcb1ed0abdd1842148bca949e727e86010a7ca662ac8129f5c0ffb1a7893b736c801945e63fbcd32eff6a8b5c3e05b6a55b2773cd9d614c5e6931d35ad52fa3b1609de7d83fa8c5de4c25d5876df89caa372cdc2e5f7ce823b6ae48686ee2fc638a46a5eb40ef146b278d08b7484abaaa6028f7c8374b8f169b01acee7e513d650a96c04576cbf7f4cabce68f94bcd2d982e42b19d524bf0d9be861412d7a573bf2647b6a83fa25091e6418d3fa236959df7aee8ed1144c505a99277ab0fe80059b91f90be08288071c493554347edd2d250985ae907c102514bbe1fb0b4c77dfb8cd6fd11256701fba2bceeb1c5", + "seed": "" + }, + { + "fills": [ + 0, + 1, + 15, + 16, + 32, + 63, + 64, + 65, + 200 + ], + "hex": "205e842478fd831e94db2129839eef4e947aa0fb795f900e7b2813c09d2a0e6f78a67c44be785a1fde0306d9b322047eefc7f3dfdff06b3f117d07e3053a6968fd7b188574f9849e575046f4d27e1b6fdf3d8b2b50c0c2f1aacefd41387c76cd298f030983db9010c5282f9bf0eeab693176108b6c5f2759fde772ec602a78099ed8cd09eb28c7249f7729f34c8156ac320b5f7fcb7ec8068650466759a12081e239fbbc76c13e02127e02e08984c5625979e1661cf29437fd60dbc420485d572bfec82d2668a310f06a3dc78cd05a1f24a598199a34a23004cdfb97671d6ea7684674cd87a6b67c066e3b35103e640bbe23336de1fdd9f882b986c55a4c3a84d1399de056c4f92298c2c10be76374f1a5afb9bed6daa593ebaaf20629e44521cc0bdde42f71c55c3d065087b103a8b6547b6e2d7fccb15094dd5a62e4c07947d11908570376e5c2ba5005ca99852d12eef6f5e2cefe8c192fb2d689eade856d698d9a40ef20d8af2a9f914c2fa83225bd987874b039b99c738abe0407fa0500f36909842004ecacf9b6b4c779fef38f303e825045e44a64c0c20003f8c5689c3a9b0b43feef0596b0af364606d6b8c05d6123ef59f21376b1ce7aa0077dc7810da4b8a849ada963", + "seed": "a" + }, + { + "fills": [ + 0, + 1, + 15, + 16, + 32, + 63, + 64, + 65, + 200 + ], + "hex": "07f133f93b0b6f887771a962652331047361e5781ae8ba2e4c9bf509d3a25eb9aef0c2a10a4452a6439d673cd56dee3fc42ab803a3feeab0b5156cf8ab08a7495530e4f01e577f9be9fe054faf404df3b95913b9825a6c763862bdbd0253fb3f9d31554c57a4359c1931a8e50f824a52c2b4ceba28b47d982f3b3d104a23813d8082b110fa0b6f2d7f5f953a50fd6371eb99466b959cde3ebdd0ffe982010bb6f035e6e036cb30002ec9fb69cdfd7fd61f86c1a8cb94a9bb4f2d6e9fdd9f7666edfb15a9c9f10e1aa4f908e5246eac093f864fb75e0381d880b2cab50c733b08843932a77a52d5af1916d90ebbdaf3e63ba71f9fef78fa3f4f2c4a24694d7224d1ac91c7e750a40dce0cb00234e6325614f5ab9d847aa3751cd9f7e619456ff35a1442c1783f48c909c552178a1560dc3250f1a228d5a59386b1284557a290cbaa2cd7dd16936cd9efd901bc8212447d05f2b7b48e270cdc21516c9bd54aba9bd0ebe1b48fea06e0d8c477d5b07da6623cbfd388e62bb39017420caf33e692df73e2806fdcfa8b0448abcfa1f7f1e3aaea4ed42d9dc43a74945211f80e7a7639b0344047d28f44141a32d8441db526d8c70e058fe496aa7aaa6e2c9ec332afa4b1fb3eeb88a5e859", + "seed": "age writer" + }, + { + "fills": [ + 0, + 1, + 15, + 16, + 32, + 63, + 64, + 65, + 200 + ], + "hex": "32be5b9d2e9c29ffa6543f8bc24f6097106fea75aa73a94be3b5b12e049b18291c0d659775497434c5692271f75d8ac81788174b887c4a088863e4afaf785d53b1f709bc5301fa9fdae2551645920bf8525c335806f1559d61c861a2c4bcad172e12b07c73c2b7205ebbe37519f3fb1b26466630357b62a613676d2900837cda091d1f3d0d3e9a43e9afa0ecdc32a82692945f07469d51110a74172de2193a3fc32222de357af194715c6aeff6ebfead5bbb857e22ca679cb95791e890648a45e11236e023cc7313bbadee34c385f64394391c6f72e8ad37274f6bd47ade7317e8e435e8fffea6d79382c85460a7c0f4cdc3f17f1f54629480728833be137019546412f757b6cddbef5155dba23cdc9345d44733da881ab1a76d3f9bd49a34acc917a295c2fdae500a7362d8195e15ba0c763bcc2a82eefcc0718a326932855c1c757052858f6d625f00e8c57c8faccadbd9245fcd5a0df2cf43ad5bf0490fb747b388c3079a6cac7c328ded17959140192e109e747e7e0c66e7b2bd7a0fc8df8b0afa47932dd4096b7d0bc421dc6a687d86ef1142fd79f4cb60d07ab417e22cd10d06ecdd2b4fdf324d87e5dd6f468d676b37f1dd2d1fee1d18fb072b90c2a7a936f1eb359e80c4", + "seed": "seed with spaces and ñ" + } + ], + "source": "c531e936fa8188a4aab01575607cc85d4f5d4fa4", + "stream": { + "close_after_close": "stream.Writer is already closed", + "empty_write_after_close": "stream.Writer is already closed", + "write_after_close": "stream.Writer is already closed" + } +} diff --git a/tool/age_writer_go_vectors.go b/tool/age_writer_go_vectors.go new file mode 100644 index 0000000..df7b1d2 --- /dev/null +++ b/tool/age_writer_go_vectors.go @@ -0,0 +1,746 @@ +//go:build ignore + +// Writes test/vectors/age_writer.json, the vectors of the age writer of +// datekeys-dart, stage 6a of docs/PLAN_dart.md: age files that +// filippo.io/age v1.3.2 and the agewrap package of datekeys-go write, +// deterministically, and the texts of the errors of the writer. +// +// age.Encrypt draws every random value from crypto/rand: the file key, the +// ephemeral secret of each X25519 stanza, the salt and then the label of a +// scrypt stanza, sigma and then the label of the tlock stanza, and the nonce +// of the payload. Here crypto/rand.Reader reads the keystream of +// SeededRandomSource of lib/src/random.dart instead: ChaCha20 under +// SHA-256(seed), with a zero nonce. With the same seed, the writer of +// datekeys-dart draws the same values, in the same order, and must write the +// same bytes. Every case records the size and the bytes of each draw, and +// the generator checks the files against internal/testkit: testkit.SealAge +// seals the same file with the first draw as the file key and the last as +// the nonce, each X25519 stanza is the one of its ephemeral secret, the +// length is the one of testkit.HeaderLen and testkit.StreamLen, and Go opens +// the file with its identities. +// +// - seeded: the keystream of a few seeds, read in fills of several sizes; +// - rand_int and permute: crypto/rand.Int and the permute of +// capsule.Encrypt, restated because it is not exported, over the +// keystream of a seed; +// - encrypt: age.Encrypt with X25519 recipients (one, two, three and +// sixteen, and one with bit 255 set, which age accepts), scrypt +// recipients of work factor 1, 2, 10 and 16, and the tlock recipient of +// agewrap for rounds of 1 to 11 digits, over plaintexts of 0, 1, 64 KiB +// - 1, 64 KiB, 64 KiB + 1, 128 KiB and more bytes, up to a few MiB. Byte +// i of a plaintext is (31·i + 7) mod 256. A small file is stored whole; +// a large one, as its header, its length and its SHA-256; +// - errors: what age.Encrypt refuses, with its text: no recipient, +// recipients whose labels cannot be mixed and X25519 recipients of low +// order; and NewScryptRecipient, SetWorkFactor and NewTimeRecipient; +// - stream: the writer of age.Encrypt after Close; +// - parse, check and generate: age.ParseX25519Recipient, +// agewrap.CheckX25519Recipient and age.GenerateX25519Identity; +// - lengths: testkit.StreamLen and capsule.PayloadAgeLength. +// +// It also writes test/vectors/age_writer.g.dart, the same JSON as a Dart +// constant, for the tests that also run compiled to JavaScript. +// +// It imports internal/testkit, so it runs in an export of datekeys-go made +// with git archive, without changing the repository, on the branch v0.12 at +// c531e93: +// +// commit=$(git -C ../datekeys-go rev-parse v0.12) +// out=$PWD/test/vectors +// tmp=$(mktemp -d) +// git -C ../datekeys-go archive "$commit" | tar -x -C "$tmp" +// cp tool/age_writer_go_vectors.go "$tmp" +// (cd "$tmp" && go run ./age_writer_go_vectors.go -source "$commit" -out "$out") +// rm -rf "$tmp" +// +// The output is the same on every run. +package main + +import ( + "bytes" + "crypto/rand" + "crypto/sha256" + "encoding/base64" + "encoding/hex" + "encoding/json" + "flag" + "fmt" + "io" + "log" + "math/big" + "os" + "path/filepath" + "runtime" + "strings" + + "filippo.io/age" + "golang.org/x/crypto/chacha20" + "golang.org/x/crypto/chacha20poly1305" + "golang.org/x/crypto/curve25519" + "golang.org/x/crypto/hkdf" + + "g.activething.com/go/DateKeys/agewrap" + "g.activething.com/go/DateKeys/capsule" + "g.activething.com/go/DateKeys/codec/bech32" + "g.activething.com/go/DateKeys/internal/testkit" + "g.activething.com/go/DateKeys/profile" + "g.activething.com/go/DateKeys/provider" +) + +type obj = map[string]any + +func h(b []byte) string { return hex.EncodeToString(b) } + +func sum(b []byte) string { + s := sha256.Sum256(b) + return h(s[:]) +} + +func check(err error) { + if err != nil { + _, file, line, _ := runtime.Caller(1) + log.Fatalf("%s:%d: %v", filepath.Base(file), line, err) + } +} + +func mustHex(s string) []byte { + b, err := hex.DecodeString(s) + check(err) + return b +} + +// pattern is a plaintext of n bytes: byte i is (31·i + 7) mod 256. +func pattern(n int) []byte { + b := make([]byte, n) + for i := range b { + b[i] = byte(31*i + 7) + } + return b +} + +// The published Quicknet signatures of rounds 1000 and 1001, as in the +// fixtures; provider.Verify checks them when a file is opened. +var releases = map[uint64]string{ + 1000: "b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39", + 1001: "b33bf3667cbd5a82de3a24b4e0e9fe5513cc1a0e840368c6e31f5fcfa79bea03f73896b25883abf2853d10337fb8fa41", +} + +// --------------------------------------------------------------------------- +// crypto/rand from a seed + +// seeded is the crypto/rand.Reader of a case: the ChaCha20 keystream under +// SHA-256(seed) and a zero nonce, the stream of SeededRandomSource. It keeps +// every read: age reads each value whole, with io.ReadFull. +type seeded struct { + c *chacha20.Cipher + draws [][]byte +} + +func newSeeded(seed string) *seeded { + key := sha256.Sum256([]byte(seed)) + c, err := chacha20.NewUnauthenticatedCipher(key[:], make([]byte, chacha20.NonceSize)) + check(err) + return &seeded{c: c} +} + +func (s *seeded) Read(p []byte) (int, error) { + clear(p) + s.c.XORKeyStream(p, p) + s.draws = append(s.draws, bytes.Clone(p)) + return len(p), nil +} + +// with runs f while crypto/rand reads the keystream of seed, and returns +// the draws. +func with(seed string, f func()) [][]byte { + s := newSeeded(seed) + old := rand.Reader + rand.Reader = s + defer func() { rand.Reader = old }() + f() + return s.draws +} + +func drawsOf(d [][]byte) []obj { + out := []obj{} + for _, b := range d { + out = append(out, obj{"n": len(b), "hex": h(b)}) + } + return out +} + +// --------------------------------------------------------------------------- +// Recipients + +// identity is the X25519 identity of a label: its raw secret is +// SHA-256("identity " + label). +func identity(label string) *age.X25519Identity { + s := sha256.Sum256([]byte("identity " + label)) + id, err := agewrap.X25519IdentityFromRaw(s[:]) + check(err) + return id +} + +func recipientOfRaw(raw []byte) *age.X25519Recipient { + s, err := bech32.Encode("age", raw) + check(err) + r, err := age.ParseX25519Recipient(s) + check(err) + return r +} + +func rawOf(r *age.X25519Recipient) []byte { + raw, err := agewrap.RawX25519Recipient(r) + check(err) + return raw +} + +// spec is a recipient of a case: X25519, scrypt or tlock. +type spec struct { + x25519 *age.X25519Recipient + id *age.X25519Identity // the identity of x25519, when known + pass string + wf int + round uint64 +} + +func x(label string) spec { + id := identity(label) + return spec{x25519: id.Recipient(), id: id} +} + +func xraw(raw []byte) spec { return spec{x25519: recipientOfRaw(raw)} } + +func sc(pass string, wf int) spec { return spec{pass: pass, wf: wf} } + +func tl(round uint64) spec { return spec{round: round} } + +func (s spec) recipient() age.Recipient { + switch { + case s.x25519 != nil: + return s.x25519 + case s.pass != "": + r, err := age.NewScryptRecipient(s.pass) + check(err) + r.SetWorkFactor(s.wf) + return r + default: + r, err := agewrap.NewTimeRecipient(profile.Quicknet(), s.round) + check(err) + return r + } +} + +func (s spec) json() obj { + switch { + case s.x25519 != nil: + o := obj{"x25519": s.x25519.String()} + if s.id != nil { + o["identity"] = s.id.String() + } + return o + case s.pass != "": + return obj{"scrypt": s.pass, "work_factor": s.wf} + default: + return obj{"tlock": s.round} + } +} + +func recipients(specs []spec) []age.Recipient { + var out []age.Recipient + for _, s := range specs { + out = append(out, s.recipient()) + } + return out +} + +func specsJSON(specs []spec) []obj { + out := []obj{} + for _, s := range specs { + out = append(out, s.json()) + } + return out +} + +func encrypt(plain []byte, rs []age.Recipient) ([]byte, error) { + var buf bytes.Buffer + w, err := age.Encrypt(&buf, rs...) + if err != nil { + return nil, err + } + if _, err := w.Write(plain); err != nil { + return nil, err + } + if err := w.Close(); err != nil { + return nil, err + } + return buf.Bytes(), nil +} + +// x25519Stanza is the X25519 stanza that wraps fileKey for pub with the +// ephemeral secret eph, restated from age's X25519Recipient.Wrap. +func x25519Stanza(fileKey, pub, eph []byte) *age.Stanza { + share, err := curve25519.X25519(eph, curve25519.Basepoint) + check(err) + secret, err := curve25519.X25519(eph, pub) + check(err) + key := make([]byte, 32) + _, err = io.ReadFull(hkdf.New(sha256.New, secret, append(bytes.Clone(share), pub...), []byte("age-encryption.org/v1/X25519")), key) + check(err) + a, err := chacha20poly1305.New(key) + check(err) + return &age.Stanza{Type: "X25519", Args: []string{base64.RawStdEncoding.EncodeToString(share)}, Body: a.Seal(nil, make([]byte, 12), fileKey, nil)} +} + +// crossCheck checks a file that age.Encrypt wrote with draws against +// internal/testkit and Go's identities. +func crossCheck(name string, file []byte, draws [][]byte, plain []byte, specs []spec) { + stanzas, err := agewrap.Stanzas(bytes.NewReader(file)) + check(err) + if len(stanzas) != len(specs) { + log.Fatalf("%s: %d stanzas for %d recipients", name, len(stanzas), len(specs)) + } + fileKey, nonce := draws[0], draws[len(draws)-1] + if len(fileKey) != 16 || len(nonce) != 16 { + log.Fatalf("%s: a file key of %d bytes and a nonce of %d", name, len(fileKey), len(nonce)) + } + again, err := testkit.SealAge(stanzas, fileKey, nonce, plain) + check(err) + if !bytes.Equal(again, file) { + log.Fatalf("%s: testkit.SealAge writes another file", name) + } + n, err := testkit.HeaderLen(file) + check(err) + if len(file) != n+16+testkit.StreamLen(len(plain)) { + log.Fatalf("%s: %d bytes, not the header, the nonce and the STREAM", name, len(file)) + } + i := 1 + for k, s := range specs { + switch { + case s.x25519 != nil: + want := x25519Stanza(fileKey, rawOf(s.x25519), draws[i]) + got := stanzas[k] + if got.Type != want.Type || strings.Join(got.Args, " ") != strings.Join(want.Args, " ") || !bytes.Equal(got.Body, want.Body) { + log.Fatalf("%s: stanza %d is not the one of its ephemeral secret", name, k) + } + i++ + case s.pass != "": + if stanzas[k].Args[0] != base64.RawStdEncoding.EncodeToString(draws[i]) { + log.Fatalf("%s: stanza %d has another salt", name, k) + } + i += 2 // the salt and the label + default: + i += 2 // sigma and the label + } + } + if i != len(draws)-1 { + log.Fatalf("%s: %d draws, %d expected", name, len(draws), i+1) + } + // Go opens it with every identity it knows. + for k, s := range specs { + var id age.Identity + switch { + case s.id != nil: + id = s.id + case s.pass != "": + sid, err := age.NewScryptIdentity(s.pass) + check(err) + sid.SetMaxWorkFactor(s.wf) + id = sid + case s.round != 0 && releases[s.round] != "": + tid, err := agewrap.NewTimeIdentity(profile.Quicknet(), s.round, provider.Release{Round: s.round, Signature: mustHex(releases[s.round])}) + check(err) + id = tid + default: + continue + } + got, err := testkitOpen(file, id) + if err != nil { + log.Fatalf("%s: recipient %d does not open: %v", name, k, err) + } + if !bytes.Equal(got, plain) { + log.Fatalf("%s: recipient %d opens another plaintext", name, k) + } + } +} + +func testkitOpen(file []byte, id age.Identity) ([]byte, error) { + r, err := age.Decrypt(bytes.NewReader(file), id) + if err != nil { + return nil, err + } + return io.ReadAll(r) +} + +// --------------------------------------------------------------------------- +// The sections + +func seededSection() []obj { + fills := []int{0, 1, 15, 16, 32, 63, 64, 65, 200} + var out []obj + for _, seed := range []string{"", "a", "age writer", "seed with spaces and ñ"} { + s := newSeeded(seed) + var all []byte + for _, n := range fills { + b := make([]byte, n) + _, _ = s.Read(b) + all = append(all, b...) + } + out = append(out, obj{"seed": seed, "fills": fills, "hex": h(all)}) + } + return out +} + +func randIntSection() []obj { + var out []obj + for _, n := range []int64{1, 2, 3, 5, 7, 8, 10, 16, 17, 100, 255, 256, 257, 1000, 65535, 65536, 65537, 1<<31 - 1, 1 << 31, 1<<32 - 1, 1 << 32} { + seed := fmt.Sprintf("rand.Int %d", n) + var results []int64 + next := make([]byte, 4) + draws := with(seed, func() { + for range 24 { + v, err := rand.Int(rand.Reader, big.NewInt(n)) + check(err) + results = append(results, v.Int64()) + } + _, _ = rand.Read(next) + }) + out = append(out, obj{"n": n, "seed": seed, "results": results, "reads": len(draws) - 1, "next": h(next)}) + } + return out +} + +// permute is the permute of capsule.Encrypt in Go, which capsule does not +// export, restated: Fisher-Yates with crypto/rand.Int. +func permute[T any](s []T) error { + for i := len(s) - 1; i > 0; i-- { + j, err := rand.Int(rand.Reader, big.NewInt(int64(i+1))) + if err != nil { + return err + } + k := int(j.Int64()) + s[i], s[k] = s[k], s[i] + } + return nil +} + +func permuteSection() []obj { + var out []obj + for _, n := range []int{0, 1, 2, 3, 5, 16, 16, 16, 16, 40} { + seed := fmt.Sprintf("permute %d %d", n, len(out)) + items := make([]int, n) + for i := range items { + items[i] = i + } + draws := with(seed, func() { check(permute(items)) }) + out = append(out, obj{"n": n, "seed": seed, "order": items, "reads": len(draws)}) + } + return out +} + +func encryptSection() []obj { + var out []obj + add := func(name string, specs []spec, n int, node bool) { + seed := "age writer " + name + plain := pattern(n) + var file []byte + draws := with(seed, func() { + var err error + file, err = encrypt(plain, recipients(specs)) + check(err) + }) + crossCheck(name, file, draws, plain, specs) + hdr, err := testkit.HeaderLen(file) + check(err) + o := obj{ + "name": name, + "seed": seed, + "recipients": specsJSON(specs), + "length": n, + "draws": drawsOf(draws), + "header": h(file[:hdr]), + "file_length": len(file), + "file_sha256": sum(file), + "node": node, + } + if len(file) <= 2048 { + o["file"] = h(file) + } + out = append(out, o) + } + for _, n := range []int{0, 1, 2, 15, 16, 17, 100, 103, 1000, 65535, 65536, 65537, 131071, 131072, 131073, 196608, 200000, 2 << 20, 3<<20 + 3} { + add(fmt.Sprintf("x25519, %d bytes", n), []spec{x("one")}, n, n <= 262144) + } + add("x25519, two recipients", []spec{x("two a"), x("two b")}, 50, true) + add("x25519, three recipients", []spec{x("three a"), x("three b"), x("three c")}, 1000, true) + var sixteen []spec + for i := range 16 { + sixteen = append(sixteen, x(fmt.Sprintf("slot %d", i))) + } + add("x25519, sixteen recipients", sixteen, 103, true) + add("x25519, sixteen recipients, 70000 bytes", sixteen, 70000, true) + high := rawOf(identity("high").Recipient()) + high[31] |= 0x80 + add("x25519, a recipient with bit 255 set", []spec{xraw(high)}, 10, true) + for _, c := range []struct { + wf int + n int + node bool + }{{1, 0, true}, {2, 150, true}, {2, 70000, true}, {10, 150, true}, {16, 150, false}} { + add(fmt.Sprintf("scrypt, work factor %d, %d bytes", c.wf, c.n), []spec{sc("correct horse battery staple", c.wf)}, c.n, c.node) + } + add("scrypt, a passphrase of one byte", []spec{sc("p", 1)}, 3, true) + add("scrypt, a passphrase in UTF-8", []spec{sc("contraseña de prueba ñ €", 2)}, 3, true) + for _, c := range []struct { + round uint64 + n int + node bool + }{{1000, 16, false}, {1000, 103, true}, {1000, 1773, false}, {1000, 70000, false}, {1001, 0, false}, {1, 103, true}, {profile.Quicknet().MaxRound(), 5, false}} { + add(fmt.Sprintf("tlock, round %d, %d bytes", c.round, c.n), []spec{tl(c.round)}, c.n, c.node) + } + return out +} + +func errorsSection() []obj { + var out []obj + add := func(name string, specs []spec, node bool) { + seed := "age writer error " + name + var err error + draws := with(seed, func() { _, err = encrypt(pattern(10), recipients(specs)) }) + if err == nil { + log.Fatalf("%s: no error", name) + } + out = append(out, obj{"name": name, "seed": seed, "recipients": specsJSON(specs), "draws": drawsOf(draws), "error": err.Error(), "node": node}) + } + add("no recipients", nil, true) + add("x25519, then scrypt", []spec{x("mix a"), sc("pass", 1)}, true) + add("scrypt, then x25519", []spec{sc("pass", 1), x("mix a")}, true) + add("scrypt twice", []spec{sc("pass", 1), sc("pass", 1)}, true) + add("two x25519, then scrypt", []spec{x("mix a"), x("mix b"), sc("pass", 1)}, true) + add("tlock, then x25519", []spec{tl(1000), x("mix a")}, true) + add("x25519, then tlock", []spec{x("mix a"), tl(1000)}, false) + add("tlock twice", []spec{tl(1000), tl(1000)}, false) + add("scrypt, then tlock", []spec{sc("pass", 1), tl(1000)}, false) + p := new(big.Int).Sub(new(big.Int).Lsh(big.NewInt(1), 255), big.NewInt(19)) + le := func(v *big.Int) []byte { + b := make([]byte, 32) + v.FillBytes(b) + for i, j := 0, 31; i < j; i, j = i+1, j-1 { + b[i], b[j] = b[j], b[i] + } + return b + } + order8a, _ := new(big.Int).SetString("325606250916557431795983626356110631294008115727848805560023387167927233504", 10) + order8b, _ := new(big.Int).SetString("39382357235489614581723060781553021112529911719440698176882885853963445705823", 10) + low := map[string]*big.Int{ + "0": big.NewInt(0), + "1": big.NewInt(1), + "order 8, a": order8a, + "order 8, b": order8b, + "p - 1": new(big.Int).Sub(p, big.NewInt(1)), + "p": p, + "p + 1": new(big.Int).Add(p, big.NewInt(1)), + } + for _, k := range []string{"0", "1", "order 8, a", "order 8, b", "p - 1", "p", "p + 1"} { + add("x25519 of low order, u = "+k, []spec{xraw(le(low[k]))}, true) + } + zeroHigh := make([]byte, 32) + zeroHigh[31] = 0x80 + add("x25519 of low order, u = 0 with bit 255 set", []spec{xraw(zeroHigh)}, true) + add("x25519 of low order after another one", []spec{x("mix a"), xraw(le(big.NewInt(1)))}, true) + return out +} + +func constructorSection() []obj { + var out []obj + _, err := age.NewScryptRecipient("") + out = append(out, obj{"name": "NewScryptRecipient of an empty passphrase", "error": err.Error()}) + for _, wf := range []int{0, 31, -1} { + var text string + func() { + defer func() { text = fmt.Sprint(recover()) }() + r, err := age.NewScryptRecipient("p") + check(err) + r.SetWorkFactor(wf) + }() + out = append(out, obj{"name": fmt.Sprintf("SetWorkFactor(%d)", wf), "work_factor": wf, "panic": text}) + } + q := profile.Quicknet() + for _, round := range []uint64{0, q.MaxRound() + 1} { + _, err := agewrap.NewTimeRecipient(q, round) + out = append(out, obj{"name": fmt.Sprintf("NewTimeRecipient(%d)", round), "round": round, "error": err.Error()}) + } + for _, round := range []uint64{1, q.MaxRound()} { + _, err := agewrap.NewTimeRecipient(q, round) + check(err) + } + out = append(out, obj{"name": "the last round of Quicknet", "max_round": q.MaxRound()}) + return out +} + +func streamSection() obj { + var write, empty, closeAgain error + with("age writer stream", func() { + var buf bytes.Buffer + w, err := age.Encrypt(&buf, identity("stream").Recipient()) + check(err) + check(w.Close()) + _, write = w.Write([]byte{1}) + _, empty = w.Write(nil) + closeAgain = w.Close() + }) + return obj{"write_after_close": write.Error(), "empty_write_after_close": empty.Error(), "close_after_close": closeAgain.Error()} +} + +func parseSection() []obj { + good := identity("parse").Recipient().String() + raw := rawOf(identity("parse").Recipient()) + enc := func(hrp string, b []byte) string { + s, err := bech32.Encode(hrp, b) + check(err) + return s + } + flipped := good[:len(good)-1] + map[bool]string{true: "p", false: "q"}[strings.HasSuffix(good, "q")] + inputs := []string{ + good, + strings.ToUpper(good), + good[:10] + strings.ToUpper(good[10:]), + enc("age1pq", raw), + enc("age1tag", raw), + enc("AGE", raw), + enc("age", raw[:31]), + enc("age", append(bytes.Clone(raw), 0)), + enc("age", nil), + flipped, + "", + "age1", + "age1qqqqqq", + identity("parse").String(), + " " + good, + good + "\n", + "age1é" + good[5:], + enc("age", make([]byte, 32)), + } + var out []obj + for _, s := range inputs { + r, err := age.ParseX25519Recipient(s) + if err != nil { + out = append(out, obj{"input": s, "error": err.Error()}) + continue + } + out = append(out, obj{"input": s, "raw": h(rawOf(r)), "string": r.String()}) + } + return out +} + +func checkSection() []obj { + p := new(big.Int).Sub(new(big.Int).Lsh(big.NewInt(1), 255), big.NewInt(19)) + le := func(v *big.Int) []byte { + b := make([]byte, 32) + v.FillBytes(b) + for i, j := 0, 31; i < j; i, j = i+1, j-1 { + b[i], b[j] = b[j], b[i] + } + return b + } + order8a, _ := new(big.Int).SetString("325606250916557431795983626356110631294008115727848805560023387167927233504", 10) + order8b, _ := new(big.Int).SetString("39382357235489614581723060781553021112529911719440698176882885853963445705823", 10) + var raws [][]byte + for i := range 5 { + raws = append(raws, rawOf(identity(fmt.Sprintf("check %d", i)).Recipient())) + } + for _, v := range []*big.Int{ + big.NewInt(9), big.NewInt(2), new(big.Int).Sub(p, big.NewInt(2)), + p, new(big.Int).Add(p, big.NewInt(1)), new(big.Int).Add(p, big.NewInt(18)), + big.NewInt(0), big.NewInt(1), order8a, order8b, new(big.Int).Sub(p, big.NewInt(1)), + } { + raws = append(raws, le(v)) + } + for _, b := range [][]byte{le(big.NewInt(9)), le(big.NewInt(0)), raws[0]} { + b = bytes.Clone(b) + b[31] |= 0x80 + raws = append(raws, b) + } + var out []obj + for _, raw := range raws { + r := recipientOfRaw(raw) + o := obj{"raw": h(raw), "recipient": r.String()} + if err := agewrap.CheckX25519Recipient(r); err != nil { + o["error"] = err.Error() + } + out = append(out, o) + } + return out +} + +func generateSection() []obj { + var out []obj + for i := range 4 { + seed := fmt.Sprintf("generate %d", i) + var id *age.X25519Identity + draws := with(seed, func() { + var err error + id, err = age.GenerateX25519Identity() + check(err) + }) + raw, err := agewrap.RawX25519Identity(id) + check(err) + out = append(out, obj{"seed": seed, "draws": drawsOf(draws), "raw": h(raw), "identity": id.String(), "recipient": id.Recipient().String()}) + } + return out +} + +func lengthsSection() obj { + var stream, payload []obj + for _, n := range []int{0, 1, 65535, 65536, 65537, 131072, 131073, 1 << 20, 1<<30 + 1, 5_000_000_000, 1<<40 + 7} { + stream = append(stream, obj{"n": n, "length": testkit.StreamLen(n)}) + } + for _, n := range []uint64{0, 1, 65536, 65537, 1 << 32, 1<<40 + 3} { + payload = append(payload, obj{"p": n, "length": capsule.PayloadAgeLength(n)}) + } + return obj{"stream": stream, "payload_age": payload} +} + +func main() { + out := flag.String("out", "", "where the vectors go") + src := flag.String("source", "", "the commit of datekeys-go") + flag.Parse() + if *out == "" || *src == "" { + log.Fatal("usage: -source -out ") + } + doc := obj{ + "source": *src, + "go": runtime.Version(), + "description": "age files that filippo.io/age v1.3.2 and agewrap write while crypto/rand reads the keystream of SeededRandomSource (ChaCha20 under SHA-256(seed), zero nonce), with each draw; the texts of the errors of the writer; and the lengths of tool/age_writer_go_vectors.go. The plaintext of n bytes has (31·i + 7) mod 256 as byte i. A case marked node false is left out compiled to JavaScript.", + "seeded": seededSection(), + "rand_int": randIntSection(), + "permute": permuteSection(), + "encrypt": encryptSection(), + "errors": errorsSection(), + "constructors": constructorSection(), + "stream": streamSection(), + "parse": parseSection(), + "check": checkSection(), + "generate": generateSection(), + "lengths": lengthsSection(), + } + var buf bytes.Buffer + enc := json.NewEncoder(&buf) + enc.SetEscapeHTML(false) + enc.SetIndent("", " ") + check(enc.Encode(doc)) + path := filepath.Join(*out, "age_writer.json") + check(os.WriteFile(path, buf.Bytes(), 0o644)) + fmt.Printf("wrote %s, %d bytes\n", path, buf.Len()) + if bytes.Contains(buf.Bytes(), []byte("'''")) { + log.Fatal("the JSON holds three quotes") + } + dart := "// Generated by tool/age_writer_go_vectors.go from age_writer.json, for the\n" + + "// tests that also run compiled to JavaScript, where no file can be read. Do\n" + + "// not edit.\n\n" + + "/// The text of test/vectors/age_writer.json.\n" + + "const ageWriterJson = r'''\n" + buf.String() + "''';\n" + dpath := filepath.Join(*out, "age_writer.g.dart") + check(os.WriteFile(dpath, []byte(dart), 0o644)) + fmt.Printf("wrote %s\n", dpath) +}