// // TestPGPKeys.swift // passKitTests // // Created by Yishi Lin on 2019/7/17. // Copyright © 2019 Bob Sun. All rights reserved. // import XCTest @testable import passKit struct PGPTestSet { fileprivate static var ALL_TEST_SETS: [String: Self] = [:] // swiftlint:disable:this strict_fileprivate let publicKey: String let privateKey: String let fingerprint: String let passphrase: String fileprivate func collect() -> Self { // swiftlint:disable:this strict_fileprivate Self.ALL_TEST_SETS[fingerprint] = self return self } } struct MultiKeyPGPTestSet { let publicKeys: String let privateKeys: String let fingerprints: [String] let passphrases: [String] } let RSA2048 = PGPTestSet( publicKey: PGP_RSA2048_PUBLIC_KEY, privateKey: PGP_RSA2048_PRIVATE_KEY, fingerprint: "a1024dae", passphrase: "passforios" ).collect() let RSA2048_SUB = PGPTestSet( publicKey: PGP_RSA2048_PUBLIC_KEY, privateKey: PGP_RSA2048_PRIVATE_SUBKEY, fingerprint: "a1024dae", passphrase: "passforios" ) let RSA3072_NO_PASSPHRASE = PGPTestSet( publicKey: PGP_RSA3072_PUBLIC_KEY_NO_PASSPHRASE, privateKey: PGP_RSA3072_PRIVATE_KEY_NO_PASSPHRASE, fingerprint: "be0f9402", passphrase: "" ) let RSA4096 = PGPTestSet( publicKey: PGP_RSA4096_PUBLIC_KEY, privateKey: PGP_RSA4096_PRIVATE_KEY, fingerprint: "d862027e", passphrase: "passforios" ).collect() let RSA4096_SUB = PGPTestSet( publicKey: PGP_RSA4096_PUBLIC_KEY, privateKey: PGP_RSA4096_PRIVATE_SUBKEY, fingerprint: "d862027e", passphrase: "passforios" ) let ED25519 = PGPTestSet( publicKey: PGP_ED25519_PUBLIC_KEY, privateKey: PGP_ED25519_PRIVATE_KEY, fingerprint: "e9444483", passphrase: "passforios" ).collect() let ED25519_SUB = PGPTestSet( publicKey: PGP_ED25519_PUBLIC_KEY, privateKey: PGP_ED25519_PRIVATE_SUBKEY, fingerprint: "e9444483", passphrase: "passforios" ) let NISTP384 = PGPTestSet( publicKey: PGP_NISTP384_PUBLIC_KEY, privateKey: PGP_NISTP384_PRIVATE_KEY, fingerprint: "5af3c085", passphrase: "soirofssap" ).collect() let RSA2048_RSA4096 = MultiKeyPGPTestSet( publicKeys: PGP_RSA2048_PUBLIC_KEY | PGP_RSA4096_PUBLIC_KEY, privateKeys: PGP_RSA2048_PRIVATE_KEY | PGP_RSA4096_PRIVATE_KEY, fingerprints: ["a1024dae", "d862027e"], passphrases: ["passforios", "passforios"] ) let ED25519_NISTP384 = MultiKeyPGPTestSet( publicKeys: PGP_ED25519_PUBLIC_KEY | PGP_NISTP384_PUBLIC_KEY, privateKeys: PGP_ED25519_PRIVATE_KEY | PGP_NISTP384_PRIVATE_KEY, fingerprints: ["e9444483", "5af3c085"], passphrases: ["passforios", "soirofssap"] ) func requestPGPKeyPassphrase(keyID: String) -> String { let id = keyID.suffix(8).lowercased() return PGPTestSet.ALL_TEST_SETS[id]?.passphrase ?? "passforios" } let PGP_RSA2048_PUBLIC_KEY = """ -----BEGIN PGP PUBLIC KEY BLOCK----- mQENBF0uBLkBCADGYAW5yJQ/lLHmHdb/l0bhYyLnhuyWTaOWIEHGiDnpjO71vBPD WMPxPulj/GGdqzR4lUUanPG1yJwXTjNutjMBZ/o+ixgdqja391b4L8VyF5Lb7pHX c6uvbR6p1Tj72PJrVj6Ev71VdnsHNOLUDqWZL4b0dNXPf3sM4ry5yS6Ej6ho9o/l nuYbe9WfLqUctSM+TsXd84ptc6luIHZN+cojrNGAh3RLYuVFeJjkLkvHdJBWJQS2 zJ0iAA6T0NbfPGrVL6tMaB7NwMDN33Ql3ARfaHf7/d8DXGYyGUYZFqyKagGUaBxN arXfzv9gIyc109D8pPMN5QUiEo9K4x3xNpLhABEBAAG0KnBhc3Nmb3Jpb3MgPGRl dmVsb3BlckBwYXNzZm9yaW9zLm1zc3VuLm1lPokBTgQTAQgAOAIbAwULCQgHAgYV CgkICwIEFgIDAQIeAQIXgBYhBEcSKGJxIg2ymYg+pwYuZ42hAk2uBQJdLgWNAAoJ EAYuZ42hAk2uYjIH/iPsoJD+KfJ/c7GTSLbeMtQtuIv2sCiSc+BiXp+EFjbNS7oS cEYiG/FX1zuivr3wvDGbE/oVLvdTK8tDJvCh17SZZUGeTmflgByig+1/kp5JUj2x FOH3xXCVCnh+FWB24QHLiFpwgzGuZgCKMn45PcZB7Zmo/wJsKYb040zKltQWmzg8 rZ1vOKlMgAGgdNQOu+u+8OE6x/dedYvJZePvwND4Rva+EwS+MaEZZAn76ypEblhF pRZsTb6+PeTY+IWRnne7xUvYRmZLXhqoHq/c0hXXz2xAGmpigd50HUQRUOYtsuBi RxXLwFIlfPpziomMTdhnOFVDL6UVLL+jqJDPHWu5AQ0EXS4EuQEIAMwr3I+NUsY+ Iwyyz6C84z90kHPs9zOBvGc73Tgc70lXHUklwQaqLSmLbHQzk6Ykw/o1snQ8Oz2f AjPlBr9/zWJgOvnFH+FrjpfEpmz4WjmoxBK610JINkKW4Fn4VT/NrBL9LtjaZOLp 0XA6fh8TXTOsz80jDj1VPvNAsu78FC+zXFDvOJpX+bCv3vabO9/ihKL/emvgqzxD LO9IapPfL1rPvCmfaNZ8hRV8ebHOW0pVLfyOYn4pvwtL/uYIINv1CYAwOGVW1sth 8kS8Acj4VTDkynuobxiLDTpNrRUbt0iPn/2nJ8m1qq9hqWgO2z01UkSKrusDiMNH TnHFepgG8NMAEQEAAYkBNgQYAQgAIAIbDBYhBEcSKGJxIg2ymYg+pwYuZ42hAk2u BQJhGMLoAAoJEAYuZ42hAk2u7k4IAJvwGq9HR3+rDme6Vd15z4G5MNmKRSDe778q JneGB3xYbQi8hRDAgAgmWZx/6yniYLiQSkkLSSphcFTOYIZi4RntieNEXvsQ4h90 IhD0RWaxjitG13tCHPQK8Eg2twQVt49Ogp8X7EiLd0S2yfP9feqIvnSraKo7/4W6 hboHRNvcvPrrX7aLU/dPefPjAjQT/jRlb/0IP97Y4KWcJSGVuOySm/bg9pssiPS9 hbxUO8yfvse3wnMOic390C1KXRArtS1FkDo61a9tlM/2DLmMm21SfSHVSKWxNDrr a8RjXjHHUovORm1GQ9FFifyWx5/0YvfeT8H1GWI1xkSiJLnW4zc= =WeRn -----END PGP PUBLIC KEY BLOCK----- """ let PGP_RSA2048_PRIVATE_KEY = """ -----BEGIN PGP PRIVATE KEY BLOCK----- lQPGBF0uBLkBCADGYAW5yJQ/lLHmHdb/l0bhYyLnhuyWTaOWIEHGiDnpjO71vBPD WMPxPulj/GGdqzR4lUUanPG1yJwXTjNutjMBZ/o+ixgdqja391b4L8VyF5Lb7pHX c6uvbR6p1Tj72PJrVj6Ev71VdnsHNOLUDqWZL4b0dNXPf3sM4ry5yS6Ej6ho9o/l nuYbe9WfLqUctSM+TsXd84ptc6luIHZN+cojrNGAh3RLYuVFeJjkLkvHdJBWJQS2 zJ0iAA6T0NbfPGrVL6tMaB7NwMDN33Ql3ARfaHf7/d8DXGYyGUYZFqyKagGUaBxN arXfzv9gIyc109D8pPMN5QUiEo9K4x3xNpLhABEBAAH+BwMC85DkKWoBWtf0LmJd XtTiUB+RzInyBa4dGHtFKUKO0O1o7jlJ43fiMeJYhVjRK986FG84PkhLq0K8oFN3 7gRcz57jC1iUmz5hTK7nIK903GT+PV2nFBvo+TfT83Y4PR3tDfBvkmYVBDPaVVoW 4YOJYoA2eZlHy8fb4d7O/X/NWp0jmywhaGNVbrn0qe6+paqqSsj4smhapZ2WEQfU N4k2Sb40UBe4ndk4UW9jtykcdD68L7XKXlg/Ff2iVv6PFSpQrKDEB5J5S9jR5O0/ ABXkh7v+GpXZFtCDMo9Cayw+IObBiycpte7i3KMQ/YvRh0NnOA/hf6g04ZPALChF ddzQzgMm4NRJzbNUnqDL+6AKG5A+qzTfXj9qr94PAMAldiL5YAKSZKkz5QSrbkfU LPh/JR2FAaFbP19p2feI6DZrQCw9ATDL+scefMmAiCSz5M0v7KCkW4YS/j7bk2xd ySSSbmoyp5pVRlIZANo3clYO3r+BbBmsaZE5Y+c7V7WhWzHZIoA0wT15LGsAtpQE iI8pjJyT++cAz7rYSq06gH9WtYMZbx6EFhyS+yPRyEr9Q+euRRlkpyDvNdjR5DzM BvrgBot3x46GPWi0N557gGYaLiYgbIOFMyoLB3YkacjXkf1HDrBbzTaF8bgsewEo KmovX5Bm4+LrCFKqsls43g3+ygdaB/fS+kIdZSBespyCj+AImyJiEcBjVfqu/eNP MxjN/L3BMl1kTULop3eIWx+s5lcyeENEKVf985eGPbpC7navj5joq4k7YpWFJLQo xR1KEn+wpNmyU86namFbaE/9FsbDUgFrkoq0y3NnsJp9j3azuYWFmbPFFmauGwuS e/O7+C8z4CUnqq/GODMccoOy4sDJnqT1T20r5blgepR0wSss5fROWj+OxXtTrU8i 21ACoaN4N/IVtCpwYXNzZm9yaW9zIDxkZXZlbG9wZXJAcGFzc2Zvcmlvcy5tc3N1 bi5tZT6JAU4EEwEIADgCGwMFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AWIQRHEihi cSINspmIPqcGLmeNoQJNrgUCXS4FjQAKCRAGLmeNoQJNrmIyB/4j7KCQ/inyf3Ox k0i23jLULbiL9rAoknPgYl6fhBY2zUu6EnBGIhvxV9c7or698LwxmxP6FS73UyvL Qybwode0mWVBnk5n5YAcooPtf5KeSVI9sRTh98VwlQp4fhVgduEBy4hacIMxrmYA ijJ+OT3GQe2ZqP8CbCmG9ONMypbUFps4PK2dbzipTIABoHTUDrvrvvDhOsf3XnWL yWXj78DQ+Eb2vhMEvjGhGWQJ++sqRG5YRaUWbE2+vj3k2PiFkZ53u8VL2EZmS14a qB6v3NIV189sQBpqYoHedB1EEVDmLbLgYkcVy8BSJXz6c4qJjE3YZzhVQy+lFSy/ o6iQzx1rnQPGBF0uBLkBCADMK9yPjVLGPiMMss+gvOM/dJBz7PczgbxnO904HO9J Vx1JJcEGqi0pi2x0M5OmJMP6NbJ0PDs9nwIz5Qa/f81iYDr5xR/ha46XxKZs+Fo5 qMQSutdCSDZCluBZ+FU/zawS/S7Y2mTi6dFwOn4fE10zrM/NIw49VT7zQLLu/BQv s1xQ7ziaV/mwr972mzvf4oSi/3pr4Ks8QyzvSGqT3y9az7wpn2jWfIUVfHmxzltK VS38jmJ+Kb8LS/7mCCDb9QmAMDhlVtbLYfJEvAHI+FUw5Mp7qG8Yiw06Ta0VG7dI j5/9pyfJtaqvYaloDts9NVJEiq7rA4jDR05xxXqYBvDTABEBAAH+BwMCR5GOhcI7 ROj0wr/+TnsjXHci6b9pXr3Uj4TiraqhKVQb3UefmqTyZ+D+nJIEKPmkCCzj9eXq 5bGH9zVPZsn6o06QHm5KSGcB4PDqoSbtOhaum1XO1u4a3z6hzHT15TfL2kA7idgT zmF4AZK/issLsjtptIxpnjTfflJoDDu3GaJa1X7+H4x6oALxVBQ8SFSWqC2OnaiG cLL5k0Y77Dq+3ow3HoVSFKEkt7rIPgWYKa6Xw8oASy0raxPZTMYlvbYh1eSDvm4R D1DPH1Umq75uZAiP7v1E+f4d/660YNeZV6qSTsCgsPde8qPdAQWbMzvtFesSpJwX zrhhBWd5nJU1AFX6kQ53IfCNpwmWRxjUQUEH09/jQvscufu13SAL4WbYFzUzLfFC KdQCJuDyAW7YPLEyvM5V/HQkH9sRPqHeUfG/gR5dix7zY2FFxYCLZy+yCVdPwraq i77Vw0wNg07A21qBKscBnZHQhKUEuRPkm36h9NaaMABTxEsTf4vingO6boEkv5TL /ZtSEjaP1yxKEOnYqt46YcfhQNMeVe6jmMZPCXIi5adExvOTZmJnQJ+TKHmS9HlE X5rBe8R0xbDelWhDgF0EpEsvEST3jbDW8QMEW36tWwxIAu5ia2m8sVTqznTwnKbW JKjcV1+Xyje42ihGj8bOctt+kiPfshDzwKpt50UPotvgcWTuRaA4iFT2eTaMj2CT bQLj9/Ol67kmN4m/IANpPaXQGffn1aL/H9v4UyH7yUWotBhJIBCjOxGS3RxbHVAA LWZ2foswXoDTRgO/kFHLgp5O+KHMW3OGNvsIym2BwI+X+XSZwZaWPwESIrxMHStf i/1EBPvaPjoFLuS01FJQPxmB1bZIjygmmdkT+kf3chMsOQWCDxFEcwz28rhkB6Qh Ye7SK1cHD+jkISRn414hiQE2BBgBCAAgAhsMFiEERxIoYnEiDbKZiD6nBi5njaEC Ta4FAmEYwugACgkQBi5njaECTa7uTggAm/Aar0dHf6sOZ7pV3XnPgbkw2YpFIN7v vyomd4YHfFhtCLyFEMCACCZZnH/rKeJguJBKSQtJKmFwVM5ghmLhGe2J40Re+xDi H3QiEPRFZrGOK0bXe0Ic9ArwSDa3BBW3j06CnxfsSIt3RLbJ8/196oi+dKtoqjv/ hbqFugdE29y8+utftotT90958+MCNBP+NGVv/Qg/3tjgpZwlIZW47JKb9uD2myyI 9L2FvFQ7zJ++x7fCcw6Jzf3QLUpdECu1LUWQOjrVr22Uz/YMuYybbVJ9IdVIpbE0 OutrxGNeMcdSi85GbUZD0UWJ/JbHn/Ri995PwfUZYjXGRKIkudbjNw== =4jcx -----END PGP PRIVATE KEY BLOCK----- """ let PGP_RSA2048_PRIVATE_SUBKEY = """ -----BEGIN PGP PRIVATE KEY BLOCK----- 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 ifyWx5/0YvfeT8H1GWI1xkSiJLnW4zc= =Gxx5 -----END PGP PRIVATE KEY BLOCK----- """ let PGP_RSA3072_PUBLIC_KEY_NO_PASSPHRASE = """ -----BEGIN PGP PUBLIC KEY BLOCK----- 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 dsDN96T3b3dNsR/uHBUhQKv54B58lQ== =w+7J -----END PGP PUBLIC KEY BLOCK----- """ let PGP_RSA3072_PRIVATE_KEY_NO_PASSPHRASE = """ -----BEGIN PGP PRIVATE KEY BLOCK----- lQVYBF/7glwBDADT/Dg/3qnxErfF5ecGPx2knW2EUuD/dPSKNyo3ln3p0MnUuo+L KI7NpHxZjynyW8XPqhmW310KRo6oqtkr0AF1IdA2YFiGYrWAoNsY+JWWe0tKG5kX RiAaPlW38lB0fVUIMo/rJcJIufTs6kI1vPuyjKUEz7EiWaCgxlJewDwyQaXGKR3r WrA98i3VGnDe9/6zf9i3MF4mQFnOWhKPIJH5m5ywECcenEXf+KcHsomxQF7cMzS+ Afn9eR9fQd+HrIXvyYSl3ZmQR3thMHoZmEE6sUq8S+wcLhQPFD/P3ZlfzuPRmlxk qwv3hTFMp2Lo+nnIc7F6hhPYmaZGDXNwDtkjBRztyW+sxYQkp92WsTCnrIAgyl6X nMRpuMlhToPUltF2+Msym/6MmuDAxgEIKkd2MMpLxwSdeWr/3TvGiMrOgvspQYX7 +uAkrQhA5jfm2hKDhmyIMS1e6ns6yfVM1QxQszZFosUjOF1+RnykB3rNb3i3mtbF CqDBcB4nFP7J4ekAEQEAAQAL/R1jkRwlugjD2rozJTlupE+Z9cDLyV672lqTyvoO 6/ZFAx5Hc7bMENQ+EsagfE/Eh7hCca7C2RV0x7q8M5neihKGSrqnK863E55kGUwC dqFOBuzyG4zS+jNj401lE4tlhCrmm6Dy81b9f5EdlGqlKyigqrtv3IkRxPJVMb6U xyOuiere8MNxfLqcfzHVVcL2aGzT83nI2QdTkj/IqVxcxxrEXKTkxbpO2bnIhsZL QHSpox0YdPOctt78clbUp/FEKm14nwRfiIbs2kF7sKkrK8s+INs5gMjo73CFJJwD Kd3aZukPANalkSma9pcttuin0n43TmDJb4ksqar/RgC86NbLGVE+0CkhokCkWEMQ os9wkZEg3G9YmpUECNCKP4J5hZ5WWm03qYGdVU83JxkYU50Hq8xqPl/pkaxpx5kH 2OpMPsxalqa0imW/tF89IgizrE+sUVHeLcGEc0h3if73EUAESKvHl9J+16WGek02 qGMbb3kN0OtaG22P+Zk8fYUnYwYA35KHBd/Yz9dCL7F6zWbVGuD1x9s9CgpeoNc/ htNErLKtL9Il9xWR5Q4k4SjxsWTgFklVRJvt6VCNoMwYQfwRact0ZY6d+XqdBPfv NSz7Gp9Bv2bQvPHagD2Y+rMKzDykBYq45CoZIRKi/7YR6gSoOXvS9eR0dPvkW5TC oLeVI8C61ACELWgGF9GTHVqN5290jfhyYqFYr4QWIadryD/RUT9tfju5Kzo5CAno A831A3/8mJ3I1D5Ox1V2pIsuOL77BgDyu3MqNeaM9cMLBNn1mYTGmPfsN4FyiVte PwkXLi7lkLxxvrEuSPr8PrNv23UP5HD3hCwhe6vjb84FtQlNDOOncE6GQ1+FD9+N AtJ659jGiwPn0Txaz0zNAGw8DQFoAgqL9U2KCe0V34NT+yB4T7mLEKLTHGGF3vlX R7eFIfB30TbwNaW8BOsWoG0PB18OD+BwgVJdSe2SqNzFsVs3Nekcs9KLck859PZo XH1hVTnVatrPgr1acTmSbyrn+4i8/WsGAMjxYuvGFVhrIlrbi2WwrEzsbcIw6dXN Zm8amqCoiUknoOpxDwlNakiDDGwYwLMoeO+rvkKXIIjMvDnJKL7UlLn0WjPrOpvF KM+iM1LuqG7NgR9JEzGyWj/+N4+xux442YRt3CQWFdJy/lNwzF0e23tkUbjgak41 tAk3aynk+Pln+7iwsBpaUs++1U1FdjPxcMpmcB64YNUSDbeLyXvfhtp4uBuBiOxr dgSh6iYHXtrLVBX3l1dIuS131HBF2hr7IungtCpwYXNzZm9yaW9zIDxkZXZlbG9w ZXJAcGFzc2Zvcmlvcy5tc3N1bi5tZT6JAc4EEwEIADgWIQSzfNVmmgPw1Gc1oro1 +6PQvg+UAgUCX/uCXAIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRA1+6PQ vg+UAvcWC/4pXMnC8/J9eP7mp4znqNT8oFJbihYukxJ1kB4tfQBHzTTutg8y5F7G 7CuXxi7+U24r8rrS+oFR634g7GgQLCxSvcy6WB0vRLMybyrAGnrKCh5K4mEl+/Q8 w2AdMHG67yEs5kLerLBNxS26tLpqwVX2Nh8JxCQkatM531HZNxoSMK/dsoaboSXY sZpZHZGjXEPR/3YaAHugl0fpZufeFTjyGSe48FlzYycRBN6Pn4ImhMxUE21/uxJa nQHHbp4eqxihkBEWwo4oDsVJ8aIFyd4b0FU0sqMX3u7Uf5BrPl4T9H62ftNaAZD0 yveI1gIvjXfFlBQWXQ7EvoWRAJsHw99dacDG7SEL0vdTb69CPEVso2bAwwt1Y8TC 8SzovMAB3TWsxs+jUGxHoH9gSSoGMQ0iOS3DXB/4yRv+y9ESemTx2IrBPY8WLRg8 x5zg5LL0GhePW3cGYfliMD+70hlRl7Hn+giEW+80L0luWAWilZvqO2sxyR3hKNkv JhUZBXaduoydBVgEX/uCXAEMANbwAaC+1eV0ZUw6YlHHHWLMqExmYLnC0o41f/e+ 85tdYKHI20RlGdt/3Bcoa/xBuQBFElHJWX6r3Q0W0IXNQAmJTtagnn5hv1l+FD1F zF3cXk7ZhKfW5ibelwjv+qfe/JJiAPuQKOElIG/RFt18KSut9n7XQQRwbKX3FWlz N2D9jiIP0o8eNO9QBosVLtQXKepSCQtVJc0a22FxeJ2SfluavFxeesXolItyxidU Bvs0pZ5Yu/BcvREd5Kf9srmJV4s5wvgWB6pQ/5U3Cf5VXgA/8dJG9mE5YN3/YZbw TWLdADEweYTqPw/Sn+hLiYNDsITreSlgySFaov5QczrM+yFB/9mJWaPg+NNy9yET PRYpu1EowPPLoizSELISoyaNun/o9nGazNPtsLILMXWGhA+MoX2HeUa0vC3QlVon lXGc9lQeZdjALZIV8tBbkMSguFm38Lr1au2TGdTup7juZlo+Y+b0NEcT1NvtGRj1 Cv8+wsa/K68ssuC3dSesy29giwARAQABAAv9END7V5/GrWqjaEjjG2HYPzwi6MNT ywTeo2i1J+WFOsEeB9pmqV29napNxnQPqs9bkZVV3xdBTMNWiqkfzHAoE/btt6Ye cGXmajKOk9KrsCZHLKUhF16daCofKABanJq6KRvI1uXLBP56ILV7s/18XSIBuJ/P wvCm139S6gqtKQX9glW5lB/5ZUXeFTCllstvKJmdgoj5aagxxNhzZuSoxTMAjLuJ oIVXZeencDlHSI0wbgikP6SJ2FZ95tTXEGQZ1AoO4SMoS1KY+A0gyZTitWEuI2wZ 3XYDTtQXDI9flmeVWvM1NCQQstK4E2lWePUtK01vUr68RVHas91oyQu/3ngbwEsH EwYYjQkQnK4cQjqT2OjBSrneBDnc5OglhdzYGQuNPMKjURIJJ239TJbWKzBpxgSZ khRJJDD3KuXugmNw3nblHMjAOHlRU9Fvb3ABhDDMZH7j4gRqNJBa/PGFkifGS6L1 5Yg2J4Kxwut+TXOYP/S/lqVpa/O9KO3N6eDpBgDaNQgFije+TSZkz13vzMV0f4iY 3ZPdTDiofC6RhqBBCJeR5RJaaDhw05xzlJD3KkYpnp18NY8OAbLopqv1Wy1211u4 6ro4RITS9AAXAOGJtsg62DebhhQbEMjZIInFMP2OINBnsc5C+6dVlPMWrB2JZWKZ BsHLrRKjq2gqu8n1/7vLxBmoVEzmWk9/LCwQUHLJod0Bm6C8XV5hV3x9TzN3MLuL tubSnHOZS6cmIcu+HgSnrkD40vnQC5++ptgPY8MGAPwqATWyKNFVo5XNNNiN0t9I 6QHH+10DtejOEhyh9iLlBXdAAxH6+1F2vkAyK9UVvU+pfbrlVBWwDyDQ9qdzAYD6 eCv2zNnqgpLzXLQC+7JzmEVXMRM3A54UmkNjQws4V+XkSxGhS6r299as+h3XcSHY nNu/OIHztJl+DanJb/Nw7j/FVkPzGrMYYxRWDJCYBNkJ5Ad44Bb7wYsti8bK4lIy wXlbiBgrzmoOMnxcaPiW3AzK/fbhhUXV12yFGOkrmQYAq7VGkAjeqTAsWNHsts5R WeOdPaetaqa2ZTQb8foj+0WIuSARIfDanlvWJ2NE+c2yHWftp7tblm8i//vgNH5D MuwfzKOYyO+BWGaqBg9QUJ24mRaFTf7CKX30pRAK41eF1sSMJKNnMYrIQVM2+JY/ cmRjDYE6yJCm5fXajvIaW7VsLQq8cMJXKFxEIOllrTsufvn8cYUczZ2Q2vcnAFK5 1gXpL/QC824S6NYmWYCAGnb+C5EhkuEcgG4lDuWPrqO+4fOJAbYEGAEIACAWIQSz fNVmmgPw1Gc1oro1+6PQvg+UAgUCX/uCXAIbDAAKCRA1+6PQvg+UAoZmC/4p+XIQ eUTehpUktxvHhXT8ubtjGuYFOzbV4bABArIHD/vwRj1M2GEfSZoRsFjAMiVsMO0B iLpn4So8Df/LLp6LWyLNrjjRXNUC0TBGHwDf2TXT7rNtfUzxJKnndvh0787v7Gb9 zc8Y+TCqoQ//JRRzelq6TDUk34M6BlQQ08HCMi5tPcpYVp9uuJRseF4EygckLpx9 QrY8/HUhvG82RlyefuSHYKodreVH0CvETz4MDoVF+74u5kK7hgqTMNusxNhuWdDP 8HBPgs9rI68BTBCh8fT5cnAKk9MnnLeHngxROkxmZ/JwSDnj3XZeQojolqje+mYn Jq86abSn/YwBMu+7jBdVx1TmwFGmM4uSpXfB6dE04hJHdIEvt2wele3CmSdGgEqF DIXXpDcu9tlHaQY/OSxRGukOmfoAXhz1kI2Wp/l0LNKAUyRlfTCEF67dv/vRiU7u YHzWfGKfLaCyHJ6rWg4EwweOgvx88HbAzfek9293TbEf7hwVIUCr+eAefJU= =/IMN -----END PGP PRIVATE KEY BLOCK----- """ let PGP_RSA4096_PUBLIC_KEY = """ -----BEGIN PGP PUBLIC KEY BLOCK----- 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 ERIDrUdG =N0dj -----END PGP PUBLIC KEY BLOCK----- """ let PGP_RSA4096_PRIVATE_KEY = """ -----BEGIN PGP PRIVATE KEY BLOCK----- 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 =Ql28 -----END PGP PRIVATE KEY BLOCK----- """ let PGP_RSA4096_PRIVATE_SUBKEY = """ -----BEGIN PGP PRIVATE KEY BLOCK----- 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 ghESA61HRg== =DFUr -----END PGP PRIVATE KEY BLOCK----- """ let PGP_ED25519_PUBLIC_KEY = """ -----BEGIN PGP PUBLIC KEY BLOCK----- mDMEXS4TMRYJKwYBBAHaRw8BAQdAW/U3l3/bMWFxHaCQ3Kr8Wel5322hgiVGO39K mk+NLYO0KnBhc3Nmb3Jpb3MgPGRldmVsb3BlckBwYXNzZm9yaW9zLm1zc3VuLm1l PoiQBBMWCAA4FiEEX8ywgauK9IlymZ4q51Csv+lERIMFAl0uEzECGwMFCwkIBwIG FQoJCAsCBBYCAwECHgECF4AACgkQ51Csv+lERIM0RgEAtw6VI0hbhIiSCZuHfePn 3XmXQnSkfYw6OrND86vNPEgBAIcymV45aM3IUMi7cczlNemdc4vzvZ2sahN4I9bp zygDuDgEXS4TMRIKKwYBBAGXVQEFAQEHQDEc6qSqOJHTY/QBMBCuH2NPbc3jfJKe 3zN15IWfji9hAwEIB4h4BBgWCAAgFiEEX8ywgauK9IlymZ4q51Csv+lERIMFAl0u EzECGwwACgkQ51Csv+lERIMOsAEA43pkVP9br/TmESz/IuTZBfVAexAA3Q9DRL7M NcZVu2wA/js8TfomM2QBmZYPSZFPzA1nI1FzzgPhFgy6fGLgpZUL =4EF6 -----END PGP PUBLIC KEY BLOCK----- """ let PGP_ED25519_PRIVATE_KEY = """ -----BEGIN PGP PRIVATE KEY BLOCK----- lIYEXS4TMRYJKwYBBAHaRw8BAQdAW/U3l3/bMWFxHaCQ3Kr8Wel5322hgiVGO39K mk+NLYP+BwMCw1EywRMGVRHmRf963xPpOVBluE38pFvriDQXbceoPZVdgyr+M2Ef 3HFn8t/ZyTzeZQZIgmlAFNgiDaz3I+CISN89uVFt7yJVGzbuvjgVSrQqcGFzc2Zv cmlvcyA8ZGV2ZWxvcGVyQHBhc3Nmb3Jpb3MubXNzdW4ubWU+iJAEExYIADgWIQRf zLCBq4r0iXKZnirnUKy/6UREgwUCXS4TMQIbAwULCQgHAgYVCgkICwIEFgIDAQIe AQIXgAAKCRDnUKy/6UREgzRGAQC3DpUjSFuEiJIJm4d94+fdeZdCdKR9jDo6s0Pz q808SAEAhzKZXjlozchQyLtxzOU16Z1zi/O9naxqE3gj1unPKAOciwRdLhMxEgor BgEEAZdVAQUBAQdAMRzqpKo4kdNj9AEwEK4fY09tzeN8kp7fM3XkhZ+OL2EDAQgH /gcDAsJwqoLIpKyw5lJwU83TfgSJJLrBR6KGLB1oZigRAasw++69iC19yUS6FY3M mRiOrYeBatYCoXY8xolbStkhZl2y9KYlPcFNWOQvVKtuUT2IeAQYFggAIBYhBF/M sIGrivSJcpmeKudQrL/pRESDBQJdLhMxAhsMAAoJEOdQrL/pRESDDrABAON6ZFT/ W6/05hEs/yLk2QX1QHsQAN0PQ0S+zDXGVbtsAP47PE36JjNkAZmWD0mRT8wNZyNR c84D4RYMunxi4KWVCw== =nV4i -----END PGP PRIVATE KEY BLOCK----- """ let PGP_ED25519_PRIVATE_SUBKEY = """ -----BEGIN PGP PRIVATE KEY BLOCK----- lDsEXS4TMRYJKwYBBAHaRw8BAQdAW/U3l3/bMWFxHaCQ3Kr8Wel5322hgiVGO39K mk+NLYP/AGUAR05VAbQqcGFzc2ZvcmlvcyA8ZGV2ZWxvcGVyQHBhc3Nmb3Jpb3Mu bXNzdW4ubWU+iJAEExYIADgWIQRfzLCBq4r0iXKZnirnUKy/6UREgwUCXS4TMQIb AwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRDnUKy/6UREgzRGAQC3DpUjSFuE iJIJm4d94+fdeZdCdKR9jDo6s0Pzq808SAEAhzKZXjlozchQyLtxzOU16Z1zi/O9 naxqE3gj1unPKAOciwRdLhMxEgorBgEEAZdVAQUBAQdAMRzqpKo4kdNj9AEwEK4f Y09tzeN8kp7fM3XkhZ+OL2EDAQgH/gcDAk55ulCfKROW5kyrg18FeoHR+DNPhKVV 7R2CyAinW5c4+SiLk+P4Zbgue1JEmCNqhckywVx6LOFoR3OdJRFumfuacB82QUY+ p9VjMutDAO+IeAQYFggAIBYhBF/MsIGrivSJcpmeKudQrL/pRESDBQJdLhMxAhsM AAoJEOdQrL/pRESDDrABAON6ZFT/W6/05hEs/yLk2QX1QHsQAN0PQ0S+zDXGVbts AP47PE36JjNkAZmWD0mRT8wNZyNRc84D4RYMunxi4KWVCw== =4Sfz -----END PGP PRIVATE KEY BLOCK----- """ let PGP_NISTP384_PUBLIC_KEY = """ -----BEGIN PGP PUBLIC KEY BLOCK----- mG8EXpUo3hMFK4EEACIDAwQXzJVx15CZgw9lpJPlFaAaFIJtxc4RevL8LitUdRZF nVmPpYpgZwoROtSEb+JPKrYR9xVFTOzf+BYXWTyq4YXFfxQrea2hRx7RZUMj3tex A+tOTnA0ruqCzMIsLYGglcK0KnBhc3Nmb3Jpb3MgPGRldmVsb3BlckBwYXNzZm9y aW9zLm1zc3VuLm1lPoiwBBMTCQA4FiEEvNNkwHhYXAYH4ZxnFxwH0lrzwIUFAl6V KN4CGwMFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AACgkQFxwH0lrzwIV2FQF/X3sS rP8f20TOpqI4Ng/5Du6QKcdje05VWVDpBVnT/f40aT8jQi6ykqrHLsWek2yFAYDn 3UD8FchlUlSbvVofgipPkPp+nSsm92D+e1r4XtHT+u+8eYtMbf8iVB8qX0B3ufC4 cwRelSjeEgUrgQQAIgMDBC8+ymFhSwUs95FmaFe52FruXlFsRgwcOfsu2MI1oMh4 xjX0uh+lwzIndDM7zbrRjkVdUijydV47TebANUwJ9S9uroOj9yxAHpg7CVRI0Kcb NhoF3eBfNDYe5YydQvJqGgMBCQmImAQYEwkAIBYhBLzTZMB4WFwGB+GcZxccB9Ja 88CFBQJelSjeAhsMAAoJEBccB9Ja88CFqwsBgKrjm2MeRnIYpSdzWEfuW9QCvaD5 bklFOfAbrdBTp39u/3iO+maLmA7/AgFFcO+AAgF/Vb/tUBdvu/pn/viWagGzK/pk cacCQ5/PGk4Ln2CosOS1atZpkmX5JJLr034tKMr6 =TMCI -----END PGP PUBLIC KEY BLOCK----- """ let PGP_NISTP384_PRIVATE_KEY = """ -----BEGIN PGP PRIVATE KEY BLOCK----- lNIEXpUo3hMFK4EEACIDAwQXzJVx15CZgw9lpJPlFaAaFIJtxc4RevL8LitUdRZF nVmPpYpgZwoROtSEb+JPKrYR9xVFTOzf+BYXWTyq4YXFfxQrea2hRx7RZUMj3tex A+tOTnA0ruqCzMIsLYGglcL+BwMCgmXDbtpRcF//w9wVoIqLBqlBfcfbPN35l+eo pTLlOEQq8ioYjXotSysjocxyW1urNKq3g5Np0ZEU8iXtD0LGdtOWq7a9UnI+90vc gq1UVxYhIWdtH5Tssshrfi6E26y0KnBhc3Nmb3Jpb3MgPGRldmVsb3BlckBwYXNz Zm9yaW9zLm1zc3VuLm1lPoiwBBMTCQA4FiEEvNNkwHhYXAYH4ZxnFxwH0lrzwIUF Al6VKN4CGwMFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AACgkQFxwH0lrzwIV2FQF/ X3sSrP8f20TOpqI4Ng/5Du6QKcdje05VWVDpBVnT/f40aT8jQi6ykqrHLsWek2yF AYDn3UD8FchlUlSbvVofgipPkPp+nSsm92D+e1r4XtHT+u+8eYtMbf8iVB8qX0B3 ufCc1gRelSjeEgUrgQQAIgMDBC8+ymFhSwUs95FmaFe52FruXlFsRgwcOfsu2MI1 oMh4xjX0uh+lwzIndDM7zbrRjkVdUijydV47TebANUwJ9S9uroOj9yxAHpg7CVRI 0KcbNhoF3eBfNDYe5YydQvJqGgMBCQn+BwMC3cQgKP9rMPr/RlmS+ANayfPVjNUs bq/6y9YWmUTN7kppKTMU6VYYMxHNSX1GIZ7RWrsWr0h5DQRrWaSef9tsyGMl0cl5 scuDku5Yzmt4meoaqZJaRLaP4EuypaGGpKOImAQYEwkAIBYhBLzTZMB4WFwGB+Gc ZxccB9Ja88CFBQJelSjeAhsMAAoJEBccB9Ja88CFqwsBgKrjm2MeRnIYpSdzWEfu W9QCvaD5bklFOfAbrdBTp39u/3iO+maLmA7/AgFFcO+AAgF/Vb/tUBdvu/pn/viW agGzK/pkcacCQ5/PGk4Ln2CosOS1atZpkmX5JJLr034tKMr6 =vn6S -----END PGP PRIVATE KEY BLOCK----- """