EVOLUTION-NINJA
Edit File: privkey.txt
===FILE:/etc/apache2/conf.d/ssl.key/server.key=== -----BEGIN RSA PRIVATE KEY----- MIIEpQIBAAKCAQEAzZXRJBo+6LpWHneZokE6ZBa2ZGJbS1KntKF7zSoxkgv9Vf3k Lf64cju85xGujY2cNjrVB67g5P3vFzSB24aJRPhNRT5gmAY2ha3Sofyz18NsoTeD Z6sm31+1EV7ZA1vTc04sUeCqIWBt7QH5MJC79oPThewFKQ+UtxH5Y3/bIMTws8oV g9VNfT3imGLQys8V+eConfaEowIy8VqTOQwXDM18O0M9EJWm+mVccNQQG5It2y9I eQBtlDOKAaLh71nx09XfEH5rsIFWZnZ3aHRmbJThKMlSTIKbuPrlUpdtcn856WdT v6G3A9yLiU4venYZUTi6immOqNTa/VTSZvK66QIDAQABAoIBADxVKEBhF28zKAze 6o5seBdhdvt0xfgP9LmU3oEyTcPfkuRGk01QQI79qw1g6goOsfZUQ6pyjvuE7kKw HR/wlp5QBFU63hwfTqbigTsaryi16E5TvVOSLeFF9Bx56lQLAb4IBgetWCBdbUUt 3BR9lTveKhhWUJlhQjKLqtWhcwxlWNrJ/wJIM9K7IQznsZ87nMjgwMiq6gLHDpe5 pgj6zUYj4eP8I60WN97+NXtFw4GlCmcvw8X3CA9k/Qn2Lvm/anN1TCMh8e0i8TY+ 1aCutrIi0D2PR7vi4hG7fM+B/VHu+feOtV2GCs+IqNeqaLT9LsdX3+LfA3vDun2C fyg9gJECgYEA5s8UZMlIKDmsIQZfEG6cjlcIUE/CdGElgbBYh80n++Sfhtx8eFCz fkMmYFIzu4n8AhHVmW6MvJikmN8RW5OHGFJOc3uTuzznu9ITnA3P+uB43Hplp89G mvCx48uz29Tr3dy1sGd4l3Gn8udOIQ3qsG+KwDSc6wpxOAh0O8DNhH0CgYEA5AX5 e7I3WE94M/XA2JYOCEZvzyK43b+J20O/Karx4QftHAny0T67xbJOidfMT6AFa1B2 aIMnWwSfRKHXDzskKRqrTBwtMAEr+WoEs0vIg1XIXtCM4nGzBpdBXzFRlP9WRBIC U7tAZhvehpsrKfiqSwTqwBeMNjkYBDZ/fj26t90CgYEAkGiH7fcxulk7JP6DhBhw w24YuYbttzsA6H+ZJH5rweJtHUfeaLi1VQ5WeHV2AKR4lCLsba8JRwaKFUub5JwN Ll5wzzhGWiPlKVJrCnxp4CGJ/QhnifLZzh9CbbAJvEUfvhRVaSWUAc0Os5+c9nlq mTFwsok4lKZX6CMB9lDPRVECgYEAs9MSYT627uodPbz9jNEp19TUsGINsLMxIL5Y r5+kiXcawxYFbIcwxkRMM+D/u3vTSkJ2Xw2vp9QJVrLbS6O0bMYfeTJvYIBMEbJO aqfFRe4Mytllgd9w9C2s3EmksQB9I8mgFDCEJQKthzIv5DW69ta12y+237w++HOS MBi2e/ECgYEAr+s0nraeYegA7mp5qcWhS83oiJb3g4rj+k0FqwO5C1OVKY7DKmT/ mvAbfAWKnbX4h3hwIigEZiqkz8iFPZxqbXrJ4IchmQViyA5dHvr0QKniMgGJXt3X xcOgJWd3bFBAXtfRoB1iq8SyP8chL/cyO62N0vobbMDoiquBvMZ5lpY= -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- MIIEBjCCAu6gAwIBAgIETyu6lzANBgkqhkiG9w0BAQsFADBOMSowKAYJKoZIhvcN AQkBFhtzc2xAY3B0ZW1wbGF0ZS53cGNwYW5lbC5jb20xIDAeBgNVBAMMF2NwdGVt cGxhdGUud3BjcGFuZWwuY29tMB4XDTIyMDQyODA2MzQwNFoXDTIzMDQyODA2MzQw NFowTjEqMCgGCSqGSIb3DQEJARYbc3NsQGNwdGVtcGxhdGUud3BjcGFuZWwuY29t MSAwHgYDVQQDDBdjcHRlbXBsYXRlLndwY3BhbmVsLmNvbTCCASIwDQYJKoZIhvcN AQEBBQADggEPADCCAQoCggEBAM2V0SQaPui6Vh53maJBOmQWtmRiW0tSp7She80q MZIL/VX95C3+uHI7vOcRro2NnDY61Qeu4OT97xc0gduGiUT4TUU+YJgGNoWt0qH8 s9fDbKE3g2erJt9ftRFe2QNb03NOLFHgqiFgbe0B+TCQu/aD04XsBSkPlLcR+WN/ 2yDE8LPKFYPVTX094phi0MrPFfngqJ32hKMCMvFakzkMFwzNfDtDPRCVpvplXHDU EBuSLdsvSHkAbZQzigGi4e9Z8dPV3xB+a7CBVmZ2d2h0ZmyU4SjJUkyCm7j65VKX bXJ/OelnU7+htwPci4lOL3p2GVE4uoppjqjU2v1U0mbyuukCAwEAAaOB6zCB6DAd BgNVHQ4EFgQU8j149ZEGHaKKqxl0w4tE6fFIx7kwCQYDVR0TBAIwADB5BgNVHSME cjBwgBTyPXj1kQYdooqrGXTDi0Tp8UjHuaFSpFAwTjEqMCgGCSqGSIb3DQEJARYb c3NsQGNwdGVtcGxhdGUud3BjcGFuZWwuY29tMSAwHgYDVQQDDBdjcHRlbXBsYXRl LndwY3BhbmVsLmNvbYIETyu6lzAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUH AwIwIgYDVR0RBBswGYIXY3B0ZW1wbGF0ZS53cGNwYW5lbC5jb20wDQYJKoZIhvcN AQELBQADggEBAIvEu3jBDWW21tw8S8F9ki2kMzWdeKYWpBmM9O2TUwAEiQWLr+eT J7MkNG1kvbLCLJcQehoqKHxYyXCE1k7Wcl5moE4fqaNGKOkSeTpduOgvNGfoLqOZ RgCzvkGb5kg6uW+WmebDQHDw6bd632SqFsoY77JA+BCZvBWWxK7uCTcXdDTL4qGj e3HlF3baTphDloo0jEUyiVnCbOqhdYVcFJWzhHtJrNoaVI0+QIbaUlJKGBLa+oY7 zY5pQVTghbHnoQv/grvvhNV/BFY79I/zNVXMyE+K8UbT2uUqneGX2pURKhondWg9 aQSJFYntozIbA9IoZAHgKTBVuWDOEJl6fBo= -----END CERTIFICATE----- ===FILE:/etc/csf/ui/server.key=== -----BEGIN PRIVATE KEY----- MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQConc3izqY4r9e5 kItdiPSQoa4TB+C5MoI/VJVVLhseXZbt9apnzH1pZKoPACwnr+Ue+GIXsZ230Qxu zbxvX78qm/uCFwNXziE9fGmoviGZfSYTE+EJFVb2ESD4VG3JhzXbNdPeJ1Oxvhkn q/c5GBQuNhwU/xhteAfMdgHiVjDeeEWfyFt2+MMz66Wr78EUmpanHrUdDKvvRazh 3DP4clyQjBUWgm1ovQGDDtYUIktJ/PXxKwV+NkNVwNVWv6Of/pN69+5cMChkIDmd 0X/0rRPzNMXhCdstKA5APYlbSUAQJVo8Am3Sz3vXqxA/w7O5fDyzGCpWG/+vqn6E uQDeRuODAgMBAAECggEBAIF5y2Lh89mLjUc8qweD5ug4foa2geUz17fxp0nlQYWr r/3BqrxR1etcFQm3xDAlbPa/G/O9u7IuoDFlYdDT4ONDK3nVWgfOjM+9/RRKC1rl MptrpF1pOYFx3bNSgYtCfCR7zNjFsgrGQmKoNgptZvGlMyMcTxGgHbzu0LuQG653 xL12mA4vhTS1ndtWPBSDmipxzwJmWwxxcGvAj+VOAQcyk4z2VJcyzByuZCPZ7fHC zaoXDQTIWl0KC54i94BuJZ4GGdR1DiZrzaCm/j9RFO164sD+AHdoJTBsXySC+eSP yS/uRGszZPm00+GkPGWPshTOQLuT5XPwytdEOH/5nKECgYEA3F4kvV+xlQr/ffql V/aqpMCDXQs00u3yPAb/on2hXmWBKDFTAPY4BHNaieBzodDRRNw5Yv0hTWut/MAW vz5SETKP9Nv0b7gfGkDVWPzd3qv5ae/yMWziE8mUC8LjF0b6Jx0SzbhJcNdTVn6q Hyp6rcCNIyAvgxZXnTVdpU1KP38CgYEAw+F6KSA2ieNbsMXsWBeHe/kQDbdt7Z+7 17/ax4kHsneIinQKPVqdEFqiPqN8G6suvzLpvoZDgEuE0AqXHq6aECYzzX7GHb5o 1jWWemdsIbsixwOqnCa+Vak4IiA7hIm29lJwoYAKnDhu70xNDP15xuwxWJgKEVMH o42WFWerXf0CgYEA2MKBwQTv2HsI9RImsW+gSo5SqKLtQs1rCECaE2sf34pYkQBz dO68CySsWhK9qt2L+v/kMspqh4zzhzorJdJXRzNFBsWUmo+xiFFdijqwwubGXr32 rUc82dneFfONDMh0JyUh6djr5GLpRpsxG5bdNSvBqFtwYLEJXUmw43gzIGECgYBf +y8x0bAHttlp8EHUFIt1yt/76KK76iZQHJlmZpXX9Ex6k0ulLq6BofeYO+GHaUT5 uUfh7MZMqjSFAHt2NFYXjbCahAEt9+xE8nMuvVi12o26+OfzpeRj8wwnZKXlVtnJ LzIzYJtSWzC4nymuMNIoD/pKEA322TmIAcvF50uIPQKBgAjh0LwV2or502Z02rjb jPB/8tFa0i+vHIr3Pmewn1Y1zF+4JHz4GAtZBAyxA89RmbDISBc1pNCS/8IAV6g2 1JIi983nPNQlxl55z7Wp3FZiPc/XKVPPcFvLfxZY6dfQTnNhOWNMLN9L0Nc8/496 5VFdA8n2Xi46eV7FcuAIUogd -----END PRIVATE KEY----- ===FILE:/etc/pki/dovecot/private/dovecot.pem=== -----BEGIN PRIVATE KEY----- MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDWDfOJ/cw7dYO7 hBtouEppEehyh+cELonr9m8iyQ1OWeijaorBuRVtX2mDz6vevVG92Se+ZW4lfSGq UWmjgQemTxirpkDwRXTNHDBAj90dW+xuDJkBAAoLPkPtD4U0JI0ECb1zg/N0WTmN YjrAXY8Ks5pJpGYGDNqpdsHWgYf20Amb6y2q3i0N6u9Hgv+vT9hbX/p5FveFvfQY PRtgUxvLDLPva/k0O59JsWSRS/QJ8/gm6m0PkEhh4sma/4Xt5xhCnw2eWLO0xj66 z3WAAxL1cJvUyQe1lX9qli/tI6kXOVlAXXyT0xV809eF8tE6K+KVHqFVeFtgJXcI YRd5T/hrAgMBAAECggEAapTXxsXQg2qoBR5qZ2Ib6uU30I9KwBJMKmmyPKfPMEwk QfoyzPLTcHopl7A369hocxdFatAmYBRGRv/yka8VmAGaTx2hCAINfnOiswLvHkc/ Giy7onvahG6kc81ejfAFJxWSd4okFrK2rWdTyaTMLI/xKunowupzlh3DtoMYqBNV FxRoNFV8M7XY91nf8wSaucHL/RqJL0fotFVePW39RGUWV1fkgrFs9RqrZqGZ5fIK AsQg41r93Dmxmm3Y8pcsSk9YDfmzI3AaXhzd8WRxRsLg69H0//ONQsEqvm3SGfyo D/PbBebTH9kKYUnjcAiEwJUKPYkh45uEkEqJkfOSQQKBgQDquaCL5Yzf+PJjILAQ JeYhZS0mkJ0Vp/luUhaNdoI+9GYXFboqHl4cEgBklTWSk5tRuFJW55e/a9BQY+Rp Ip/wDtAsKcrWLt+1bmglet+zNmDFoGIOy4EYhltmur1xW4Yw34FImjfubtVLt+x3 96/Kma+UbKh3RSou/6h+BXY9xQKBgQDpdLMyTWaCi2JDHtTC4CzKvn6Y7ACUZ9UH V1Spwc3kScw/XYFj7tguQFrzjEWSi2cl7HGF37P9s6zRjLcr2mb8QibaMjPbqaYJ J9H5PGlUvPVKorZrsDXP90ImBdW9KdquRee6RMdT8Fa1BShj+gcyNRi7jTfTsA7c ftfm/UFwbwKBgHs4X1ORedbJ9VScgFC51ImLd5xbJluMBqEnbrdskwtBeaZ8vXIG 5xiNSq+CtNDxtAO+Y1tD0KGok37gMbQPfS6kWBwXBGhTyxSPlRS34F9QGJUmkNN7 eZXKUoknVvP/O/7EFjZq3xnIDSjmsLh5ykrtSwL716RlJrPteiJN87iRAoGATacC n/281jlUouzTakq0u29nnqgJfVOYOUvkHl8XhBLD/GO20S21/JRtbEtBLQBve97M 1/HT5dRo7H64wr5vuQKr97HxK+SfFLaJEjT0+DmuAXhj4ygGjjk5aHpSYQxV79fS v1N3VcVAog+oIrEcyad9pYzQf/o0x0TtvaiJpsMCgYBGZ7Oqd045SJrN1H83vZpK 39QYxUWqPZzcGXHnDEdEyVNSvzNGg60wMzYQvVfErPGPABbic4QxAj4xz2N2y7rz ZOBh1G/x9dKcvNmD5hHhvf5kllvJTJP4wwbatrz/dmUeK8h4Qw6u8arCYk4IL5zq m5JdqNb78JJxjZQX8o0XHw== -----END PRIVATE KEY----- ===FILE:/etc/pki/tls/private/localhost.key=== -----BEGIN RSA PRIVATE KEY----- MIIEpQIBAAKCAQEAyCHDsCJX2qo5WsldVemoqE90zmd/gZnfRVb2HW1GX9RlCHLO E+MdBFk0hP86+xwW/ZkLq3HxCS2fVanlWCvQnJci7WKNVeb59ixnK4Gn9tT0cEq+ 34TKbfIAqTdStmi+YMef8uab/zoDZh+C3aXWT3WwtjyxLHsL9tu9hpuKeKEgQapn uTSWlgjGV9tFWdItZrYAiXJjUnlg37HclPCkGm9O7RCpG6izq2rJY+me1ZgEjtF/ hnSIhKDNsML+TlhjICaVx8BPVzZv+Ev8VUn0XRdu5Km3jYAayZParBlKoWoAadMR aHYVjT6DYxs2i03E539E2HATeKWXlITh7lb0kwIDAQABAoIBAQC6aiDyDntQ9eAo vYoP/W6ZIDHIFMXC/YXn+6GSNXgoyRk27mEgSxt7MnBmNatFvZt4qrchAigniXRy AafcIivVwD3LalIGIvjQIfoTn1jJ5QCvHCCA6Rr5oEKXXC3SNOyoDyngwoeqC+qg lFd8h/2A1Do+9Xd+3Dp/vZzjJjysMJuzoiSF1mey+Oyl4iZ9lHpcW1Wqo+b9hJo0 Q0goYYr7ozj/I3JTd8fMZhKN3cJt82nn8ywkuYFv9bEVD9jn4x0VHpn9IkXsAKQV s6ebA9i221ooPZnIMF286F9GYfRdY3zQFQHQ2dYNDJkwgPNuPZrIMiTeyPFRjrZS n16XRqyBAoGBAOY8D8V7MTO2/GZKqBvWC+/81n/qF1zaX80BPbPJoajORWL0z2x6 LR+GsoQdywdlTyvc85LXtnT7C6ad9GeZQ4oqA7ZBYRrmg3+iJlkB/Q1Hl9cv3FAF T5ghHFh5URqG2omsTAyPeQ8QH7vsISK+wrdMd1+bzYcOHVYGRF7qdGbTAoGBAN6H S/xeGVZtXWf0AnOc8ugOojIYzxxSA906iQ8CS+9+8p4jgYxhoU7BQpSxbc3Ch9f/ Q5+yR3ixtOtPpOzWUe6YbT8mK0IVy6juIAvtrbN8oLjiPcftdwjw6lzmubMx8uo0 jk/kpv5VJvj2MseXco/wr514uv0QMnrpF2nQHiNBAoGAe+ihOFA3x7RYnJjbZrfJ DuzNaGRNFIz2eDeNxJ/koBv7XemRZLlQZaIxm0cJiL5uYJX2hPYRXV3rBE4IRmVG 4yn/e2wuXbLn3J4g81BNp4L7ZjV85ZgmISLYxYjtLFCddvDCsRPaPFAaNCI+Jxvx YYMGz+7jKydehHi0/TxDTz8CgYEAsG2kmRoiDJv5Coozx2YQUFwJzJ5O1q1P0v6t 2/B+NAv6X9bWx25AbihbmXhzDkfFXENOYjb+43pBbq9em0fw/bJsKz0f3u1Y4z6o ucxfg4a0BuGZCgID9lrL9YwYfzKC3Z19l2o53Du3AnxwFj7E3cp98ePenPVSkJBt t78BpgECgYEAso2PeAXmNfDepZsx3qfbsqh9AvQZKugKTD7EK+BPwuKc51u60e2O lbNtXkHlJyBwl6UqeSaginHCyFhXbMFvSrnPwLLkN9eHwld3kA1DQ3pZCqi0jB27 JQVctrOCcTuAkbbxXKuV+/uscpTkfb+hMHL8xVJzjTqmxBqEnSrErdA= -----END RSA PRIVATE KEY----- ===FILE:/etc/ssh/ssh_host_ecdsa_key=== -----BEGIN EC PRIVATE KEY----- MHcCAQEEINE/fg+fJeOM5NKYSpgqkSDKJlrvCR93Ebc2mZl6//GooAoGCCqGSM49 AwEHoUQDQgAEdKvD/NjfN8KppqdhXBfrxnUXvhafwm3gVW/kVm4oA0l4MtilsCnh lLcVjPjOMQ7YN1h4rjRMykQVQNpbvf9X9A== -----END EC PRIVATE KEY----- ===FILE:/etc/ssh/ssh_host_ed25519_key=== -----BEGIN OPENSSH PRIVATE KEY----- b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW QyNTUxOQAAACBfY4PgOeru06YpWFrkOC23pC9mwszrUODHNb01ytmX4QAAAIh7U/dwe1P3 cAAAAAtzc2gtZWQyNTUxOQAAACBfY4PgOeru06YpWFrkOC23pC9mwszrUODHNb01ytmX4Q AAAEB1Q/XfzxWKK9/abBgGdSuKOnavORoCdw7dpZ6iycqYgF9jg+A56u7TpilYWuQ4Lbek L2bCzOtQ4Mc1vTXK2ZfhAAAAAAECAwQF -----END OPENSSH PRIVATE KEY----- ===FILE:/etc/ssh/ssh_host_rsa_key=== -----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAnYG4Yh3SY2gQgV8zLjnyfqunUi+d6oJg6+VyppXQYGocCJYx aDZ+NVLm1lXBHOoI1bYAYLkzGTvsM/idIa1fBEBHoR5ddfOJvfhX3oR8eMLKULYU KaMF2vpPo3SebWQgwqQ7RlTTQX8XtE2WFtGtS0uOXcJVFITrCpKZ7V8y02KYgL9A DKhMz6qDvqqxwX4DD3q+bo/Nw5Gb1kzXhgmAHe48FXHiQvOJzN2ZjhwM4XOlSCyb +Eu77QBmjufo16hiRoNRQavnnRljuo1ExN42L3oaVAd5ljGhZv8hUdxKBn2g8F4X xeuUF4yIVkajOaZ77LFi1ghjEanQLYKZyFsp6wIDAQABAoIBAHuv56SdOJ85lGST 5vQxKz3P/Jhsrjz/X68/wtYQpc9g5FzV3TyyNlAXpxC/zOOw4Xk58HgEV51EUkvJ u1M7+3ayJ83ds5Uxx4Q4JoCmV7zZctkI8zJzQ+DfWnTI2rSawaM4Jxgm+rLfZDUC DJAk3kpXrhfwyLFRY+Ysk9Y1QQt/kQ0gohI3BZ2uaRDRkGllWACu8qCYI49xsUNR bl5OU/kMvg/ikqemefmF03JRdaZn206kB6K9eiIMTXZ1zd4TST3HSUwI9cLU/FmS DNVJKkVnMwqnOCN8CAJvUATbYQ66SO+pPxA4Y0WJ53dOSw9QOyZ2IdEIj7Qrp0bs dzVCh/kCgYEA0WZIIsLNpHC7ylktxSq9WA13sm9oLmP52XGM+TxUjMFfVD4da5ce yBNxYBnNwP5RZKOg8CIqfkaAv6dy2tq0FrX8trdCx4MJQqufjX4zaCFXZl1hMGXD ArcUqmmgd2qeKJ+SEQTqjfZN84lOf9d+XKYd4lixtI1id+W/M5EwoMUCgYEAwI8M Z9z/QQ6aaCkm8WtIqDtqQEsWgqYvqNxTvVHi0mKl68NALQVzmfmcjKm1vHhfs25f 0RwTxrGGPstOfhp5yF5HOfBlgVHV6h6wo9hNrdqif9L2hEUW3x8QYYbnywSDvc5k GcSnIbo2PAOfZAab7jI9cihvp111NIrbeBMN6u8CgYBwEpIhKKnvjPa1Qi2hDVLx waOCuOXFjnS20HNnIccO3qAq8mPEpckvxFg12xmoZXUirAEDBQZBN3LJINH0GIGy dgyfrk3rglJ+gGSQ0i6pWM7yVqAhyxUoatyAqK/dug6UJ3OB8GOpP15RLff5rFhR NgdgkZ/qxpEhIrHG47pnEQKBgA6JvlIJKWxsAdRjZwFLLE0nTzpTcPukOGzzVY8x o4Jm2EgYkbvUcYnqgptMJOB55h/R8YIEMKoLtSsAhoiWzyMFmzMQp1lAKHponsWA Cz1ZCHPGJb6OyM9HtSDn4pA9YwTtlDkt08CEIpwdWedfaF5vhJwd2XA1aifxY+iI 58AZAoGBAK3UWaP7HsCDMWfDWAftUwCjArRbs+w2zjK/M/PCXo11qbWwWi1+c6xH Xpn1cGTRMpr4MpROGmFYsT0OeZN86A3r5EUHVX6d3HGfVIdb17J/oIt45OQmXxW9 d20Yaj/wiHgIxqFy3+5L8j9nNSkzXu/+i/bUFbXdF5NwUPTrhDzo -----END RSA PRIVATE KEY----- ===FILE:/etc/ssl/private/122-129-219-100.cprapid.com.key=== -----BEGIN RSA PRIVATE KEY----- MIIEpQIBAAKCAQEAzZXRJBo+6LpWHneZokE6ZBa2ZGJbS1KntKF7zSoxkgv9Vf3k Lf64cju85xGujY2cNjrVB67g5P3vFzSB24aJRPhNRT5gmAY2ha3Sofyz18NsoTeD Z6sm31+1EV7ZA1vTc04sUeCqIWBt7QH5MJC79oPThewFKQ+UtxH5Y3/bIMTws8oV g9VNfT3imGLQys8V+eConfaEowIy8VqTOQwXDM18O0M9EJWm+mVccNQQG5It2y9I eQBtlDOKAaLh71nx09XfEH5rsIFWZnZ3aHRmbJThKMlSTIKbuPrlUpdtcn856WdT v6G3A9yLiU4venYZUTi6immOqNTa/VTSZvK66QIDAQABAoIBADxVKEBhF28zKAze 6o5seBdhdvt0xfgP9LmU3oEyTcPfkuRGk01QQI79qw1g6goOsfZUQ6pyjvuE7kKw HR/wlp5QBFU63hwfTqbigTsaryi16E5TvVOSLeFF9Bx56lQLAb4IBgetWCBdbUUt 3BR9lTveKhhWUJlhQjKLqtWhcwxlWNrJ/wJIM9K7IQznsZ87nMjgwMiq6gLHDpe5 pgj6zUYj4eP8I60WN97+NXtFw4GlCmcvw8X3CA9k/Qn2Lvm/anN1TCMh8e0i8TY+ 1aCutrIi0D2PR7vi4hG7fM+B/VHu+feOtV2GCs+IqNeqaLT9LsdX3+LfA3vDun2C fyg9gJECgYEA5s8UZMlIKDmsIQZfEG6cjlcIUE/CdGElgbBYh80n++Sfhtx8eFCz fkMmYFIzu4n8AhHVmW6MvJikmN8RW5OHGFJOc3uTuzznu9ITnA3P+uB43Hplp89G mvCx48uz29Tr3dy1sGd4l3Gn8udOIQ3qsG+KwDSc6wpxOAh0O8DNhH0CgYEA5AX5 e7I3WE94M/XA2JYOCEZvzyK43b+J20O/Karx4QftHAny0T67xbJOidfMT6AFa1B2 aIMnWwSfRKHXDzskKRqrTBwtMAEr+WoEs0vIg1XIXtCM4nGzBpdBXzFRlP9WRBIC U7tAZhvehpsrKfiqSwTqwBeMNjkYBDZ/fj26t90CgYEAkGiH7fcxulk7JP6DhBhw w24YuYbttzsA6H+ZJH5rweJtHUfeaLi1VQ5WeHV2AKR4lCLsba8JRwaKFUub5JwN Ll5wzzhGWiPlKVJrCnxp4CGJ/QhnifLZzh9CbbAJvEUfvhRVaSWUAc0Os5+c9nlq mTFwsok4lKZX6CMB9lDPRVECgYEAs9MSYT627uodPbz9jNEp19TUsGINsLMxIL5Y r5+kiXcawxYFbIcwxkRMM+D/u3vTSkJ2Xw2vp9QJVrLbS6O0bMYfeTJvYIBMEbJO aqfFRe4Mytllgd9w9C2s3EmksQB9I8mgFDCEJQKthzIv5DW69ta12y+237w++HOS MBi2e/ECgYEAr+s0nraeYegA7mp5qcWhS83oiJb3g4rj+k0FqwO5C1OVKY7DKmT/ mvAbfAWKnbX4h3hwIigEZiqkz8iFPZxqbXrJ4IchmQViyA5dHvr0QKniMgGJXt3X xcOgJWd3bFBAXtfRoB1iq8SyP8chL/cyO62N0vobbMDoiquBvMZ5lpY= -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- MIIEBjCCAu6gAwIBAgIETyu6lzANBgkqhkiG9w0BAQsFADBOMSowKAYJKoZIhvcN AQkBFhtzc2xAY3B0ZW1wbGF0ZS53cGNwYW5lbC5jb20xIDAeBgNVBAMMF2NwdGVt cGxhdGUud3BjcGFuZWwuY29tMB4XDTIyMDQyODA2MzQwNFoXDTIzMDQyODA2MzQw NFowTjEqMCgGCSqGSIb3DQEJARYbc3NsQGNwdGVtcGxhdGUud3BjcGFuZWwuY29t MSAwHgYDVQQDDBdjcHRlbXBsYXRlLndwY3BhbmVsLmNvbTCCASIwDQYJKoZIhvcN AQEBBQADggEPADCCAQoCggEBAM2V0SQaPui6Vh53maJBOmQWtmRiW0tSp7She80q MZIL/VX95C3+uHI7vOcRro2NnDY61Qeu4OT97xc0gduGiUT4TUU+YJgGNoWt0qH8 s9fDbKE3g2erJt9ftRFe2QNb03NOLFHgqiFgbe0B+TCQu/aD04XsBSkPlLcR+WN/ 2yDE8LPKFYPVTX094phi0MrPFfngqJ32hKMCMvFakzkMFwzNfDtDPRCVpvplXHDU EBuSLdsvSHkAbZQzigGi4e9Z8dPV3xB+a7CBVmZ2d2h0ZmyU4SjJUkyCm7j65VKX bXJ/OelnU7+htwPci4lOL3p2GVE4uoppjqjU2v1U0mbyuukCAwEAAaOB6zCB6DAd BgNVHQ4EFgQU8j149ZEGHaKKqxl0w4tE6fFIx7kwCQYDVR0TBAIwADB5BgNVHSME cjBwgBTyPXj1kQYdooqrGXTDi0Tp8UjHuaFSpFAwTjEqMCgGCSqGSIb3DQEJARYb c3NsQGNwdGVtcGxhdGUud3BjcGFuZWwuY29tMSAwHgYDVQQDDBdjcHRlbXBsYXRl LndwY3BhbmVsLmNvbYIETyu6lzAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUH AwIwIgYDVR0RBBswGYIXY3B0ZW1wbGF0ZS53cGNwYW5lbC5jb20wDQYJKoZIhvcN AQELBQADggEBAIvEu3jBDWW21tw8S8F9ki2kMzWdeKYWpBmM9O2TUwAEiQWLr+eT J7MkNG1kvbLCLJcQehoqKHxYyXCE1k7Wcl5moE4fqaNGKOkSeTpduOgvNGfoLqOZ RgCzvkGb5kg6uW+WmebDQHDw6bd632SqFsoY77JA+BCZvBWWxK7uCTcXdDTL4qGj e3HlF3baTphDloo0jEUyiVnCbOqhdYVcFJWzhHtJrNoaVI0+QIbaUlJKGBLa+oY7 zY5pQVTghbHnoQv/grvvhNV/BFY79I/zNVXMyE+K8UbT2uUqneGX2pURKhondWg9 aQSJFYntozIbA9IoZAHgKTBVuWDOEJl6fBo= -----END CERTIFICATE----- ===FILE:/etc/ssl/private/approve.wpcpanel.com.key=== -----BEGIN RSA PRIVATE KEY----- MIIEpQIBAAKCAQEAzZXRJBo+6LpWHneZokE6ZBa2ZGJbS1KntKF7zSoxkgv9Vf3k Lf64cju85xGujY2cNjrVB67g5P3vFzSB24aJRPhNRT5gmAY2ha3Sofyz18NsoTeD Z6sm31+1EV7ZA1vTc04sUeCqIWBt7QH5MJC79oPThewFKQ+UtxH5Y3/bIMTws8oV g9VNfT3imGLQys8V+eConfaEowIy8VqTOQwXDM18O0M9EJWm+mVccNQQG5It2y9I eQBtlDOKAaLh71nx09XfEH5rsIFWZnZ3aHRmbJThKMlSTIKbuPrlUpdtcn856WdT v6G3A9yLiU4venYZUTi6immOqNTa/VTSZvK66QIDAQABAoIBADxVKEBhF28zKAze 6o5seBdhdvt0xfgP9LmU3oEyTcPfkuRGk01QQI79qw1g6goOsfZUQ6pyjvuE7kKw HR/wlp5QBFU63hwfTqbigTsaryi16E5TvVOSLeFF9Bx56lQLAb4IBgetWCBdbUUt 3BR9lTveKhhWUJlhQjKLqtWhcwxlWNrJ/wJIM9K7IQznsZ87nMjgwMiq6gLHDpe5 pgj6zUYj4eP8I60WN97+NXtFw4GlCmcvw8X3CA9k/Qn2Lvm/anN1TCMh8e0i8TY+ 1aCutrIi0D2PR7vi4hG7fM+B/VHu+feOtV2GCs+IqNeqaLT9LsdX3+LfA3vDun2C fyg9gJECgYEA5s8UZMlIKDmsIQZfEG6cjlcIUE/CdGElgbBYh80n++Sfhtx8eFCz fkMmYFIzu4n8AhHVmW6MvJikmN8RW5OHGFJOc3uTuzznu9ITnA3P+uB43Hplp89G mvCx48uz29Tr3dy1sGd4l3Gn8udOIQ3qsG+KwDSc6wpxOAh0O8DNhH0CgYEA5AX5 e7I3WE94M/XA2JYOCEZvzyK43b+J20O/Karx4QftHAny0T67xbJOidfMT6AFa1B2 aIMnWwSfRKHXDzskKRqrTBwtMAEr+WoEs0vIg1XIXtCM4nGzBpdBXzFRlP9WRBIC U7tAZhvehpsrKfiqSwTqwBeMNjkYBDZ/fj26t90CgYEAkGiH7fcxulk7JP6DhBhw w24YuYbttzsA6H+ZJH5rweJtHUfeaLi1VQ5WeHV2AKR4lCLsba8JRwaKFUub5JwN Ll5wzzhGWiPlKVJrCnxp4CGJ/QhnifLZzh9CbbAJvEUfvhRVaSWUAc0Os5+c9nlq mTFwsok4lKZX6CMB9lDPRVECgYEAs9MSYT627uodPbz9jNEp19TUsGINsLMxIL5Y r5+kiXcawxYFbIcwxkRMM+D/u3vTSkJ2Xw2vp9QJVrLbS6O0bMYfeTJvYIBMEbJO aqfFRe4Mytllgd9w9C2s3EmksQB9I8mgFDCEJQKthzIv5DW69ta12y+237w++HOS MBi2e/ECgYEAr+s0nraeYegA7mp5qcWhS83oiJb3g4rj+k0FqwO5C1OVKY7DKmT/ mvAbfAWKnbX4h3hwIigEZiqkz8iFPZxqbXrJ4IchmQViyA5dHvr0QKniMgGJXt3X xcOgJWd3bFBAXtfRoB1iq8SyP8chL/cyO62N0vobbMDoiquBvMZ5lpY= -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- MIIEBjCCAu6gAwIBAgIETyu6lzANBgkqhkiG9w0BAQsFADBOMSowKAYJKoZIhvcN AQkBFhtzc2xAY3B0ZW1wbGF0ZS53cGNwYW5lbC5jb20xIDAeBgNVBAMMF2NwdGVt cGxhdGUud3BjcGFuZWwuY29tMB4XDTIyMDQyODA2MzQwNFoXDTIzMDQyODA2MzQw NFowTjEqMCgGCSqGSIb3DQEJARYbc3NsQGNwdGVtcGxhdGUud3BjcGFuZWwuY29t MSAwHgYDVQQDDBdjcHRlbXBsYXRlLndwY3BhbmVsLmNvbTCCASIwDQYJKoZIhvcN AQEBBQADggEPADCCAQoCggEBAM2V0SQaPui6Vh53maJBOmQWtmRiW0tSp7She80q MZIL/VX95C3+uHI7vOcRro2NnDY61Qeu4OT97xc0gduGiUT4TUU+YJgGNoWt0qH8 s9fDbKE3g2erJt9ftRFe2QNb03NOLFHgqiFgbe0B+TCQu/aD04XsBSkPlLcR+WN/ 2yDE8LPKFYPVTX094phi0MrPFfngqJ32hKMCMvFakzkMFwzNfDtDPRCVpvplXHDU EBuSLdsvSHkAbZQzigGi4e9Z8dPV3xB+a7CBVmZ2d2h0ZmyU4SjJUkyCm7j65VKX bXJ/OelnU7+htwPci4lOL3p2GVE4uoppjqjU2v1U0mbyuukCAwEAAaOB6zCB6DAd BgNVHQ4EFgQU8j149ZEGHaKKqxl0w4tE6fFIx7kwCQYDVR0TBAIwADB5BgNVHSME cjBwgBTyPXj1kQYdooqrGXTDi0Tp8UjHuaFSpFAwTjEqMCgGCSqGSIb3DQEJARYb c3NsQGNwdGVtcGxhdGUud3BjcGFuZWwuY29tMSAwHgYDVQQDDBdjcHRlbXBsYXRl LndwY3BhbmVsLmNvbYIETyu6lzAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUH AwIwIgYDVR0RBBswGYIXY3B0ZW1wbGF0ZS53cGNwYW5lbC5jb20wDQYJKoZIhvcN AQELBQADggEBAIvEu3jBDWW21tw8S8F9ki2kMzWdeKYWpBmM9O2TUwAEiQWLr+eT J7MkNG1kvbLCLJcQehoqKHxYyXCE1k7Wcl5moE4fqaNGKOkSeTpduOgvNGfoLqOZ RgCzvkGb5kg6uW+WmebDQHDw6bd632SqFsoY77JA+BCZvBWWxK7uCTcXdDTL4qGj e3HlF3baTphDloo0jEUyiVnCbOqhdYVcFJWzhHtJrNoaVI0+QIbaUlJKGBLa+oY7 zY5pQVTghbHnoQv/grvvhNV/BFY79I/zNVXMyE+K8UbT2uUqneGX2pURKhondWg9 aQSJFYntozIbA9IoZAHgKTBVuWDOEJl6fBo= -----END CERTIFICATE----- ===FILE:/etc/ssl/private/cptemplate.wpcpanel.com.key=== -----BEGIN RSA PRIVATE KEY----- MIIEpQIBAAKCAQEAzZXRJBo+6LpWHneZokE6ZBa2ZGJbS1KntKF7zSoxkgv9Vf3k Lf64cju85xGujY2cNjrVB67g5P3vFzSB24aJRPhNRT5gmAY2ha3Sofyz18NsoTeD Z6sm31+1EV7ZA1vTc04sUeCqIWBt7QH5MJC79oPThewFKQ+UtxH5Y3/bIMTws8oV g9VNfT3imGLQys8V+eConfaEowIy8VqTOQwXDM18O0M9EJWm+mVccNQQG5It2y9I eQBtlDOKAaLh71nx09XfEH5rsIFWZnZ3aHRmbJThKMlSTIKbuPrlUpdtcn856WdT v6G3A9yLiU4venYZUTi6immOqNTa/VTSZvK66QIDAQABAoIBADxVKEBhF28zKAze 6o5seBdhdvt0xfgP9LmU3oEyTcPfkuRGk01QQI79qw1g6goOsfZUQ6pyjvuE7kKw HR/wlp5QBFU63hwfTqbigTsaryi16E5TvVOSLeFF9Bx56lQLAb4IBgetWCBdbUUt 3BR9lTveKhhWUJlhQjKLqtWhcwxlWNrJ/wJIM9K7IQznsZ87nMjgwMiq6gLHDpe5 pgj6zUYj4eP8I60WN97+NXtFw4GlCmcvw8X3CA9k/Qn2Lvm/anN1TCMh8e0i8TY+ 1aCutrIi0D2PR7vi4hG7fM+B/VHu+feOtV2GCs+IqNeqaLT9LsdX3+LfA3vDun2C fyg9gJECgYEA5s8UZMlIKDmsIQZfEG6cjlcIUE/CdGElgbBYh80n++Sfhtx8eFCz fkMmYFIzu4n8AhHVmW6MvJikmN8RW5OHGFJOc3uTuzznu9ITnA3P+uB43Hplp89G mvCx48uz29Tr3dy1sGd4l3Gn8udOIQ3qsG+KwDSc6wpxOAh0O8DNhH0CgYEA5AX5 e7I3WE94M/XA2JYOCEZvzyK43b+J20O/Karx4QftHAny0T67xbJOidfMT6AFa1B2 aIMnWwSfRKHXDzskKRqrTBwtMAEr+WoEs0vIg1XIXtCM4nGzBpdBXzFRlP9WRBIC U7tAZhvehpsrKfiqSwTqwBeMNjkYBDZ/fj26t90CgYEAkGiH7fcxulk7JP6DhBhw w24YuYbttzsA6H+ZJH5rweJtHUfeaLi1VQ5WeHV2AKR4lCLsba8JRwaKFUub5JwN Ll5wzzhGWiPlKVJrCnxp4CGJ/QhnifLZzh9CbbAJvEUfvhRVaSWUAc0Os5+c9nlq mTFwsok4lKZX6CMB9lDPRVECgYEAs9MSYT627uodPbz9jNEp19TUsGINsLMxIL5Y r5+kiXcawxYFbIcwxkRMM+D/u3vTSkJ2Xw2vp9QJVrLbS6O0bMYfeTJvYIBMEbJO aqfFRe4Mytllgd9w9C2s3EmksQB9I8mgFDCEJQKthzIv5DW69ta12y+237w++HOS MBi2e/ECgYEAr+s0nraeYegA7mp5qcWhS83oiJb3g4rj+k0FqwO5C1OVKY7DKmT/ mvAbfAWKnbX4h3hwIigEZiqkz8iFPZxqbXrJ4IchmQViyA5dHvr0QKniMgGJXt3X xcOgJWd3bFBAXtfRoB1iq8SyP8chL/cyO62N0vobbMDoiquBvMZ5lpY= -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- MIIEBjCCAu6gAwIBAgIETyu6lzANBgkqhkiG9w0BAQsFADBOMSowKAYJKoZIhvcN AQkBFhtzc2xAY3B0ZW1wbGF0ZS53cGNwYW5lbC5jb20xIDAeBgNVBAMMF2NwdGVt cGxhdGUud3BjcGFuZWwuY29tMB4XDTIyMDQyODA2MzQwNFoXDTIzMDQyODA2MzQw NFowTjEqMCgGCSqGSIb3DQEJARYbc3NsQGNwdGVtcGxhdGUud3BjcGFuZWwuY29t MSAwHgYDVQQDDBdjcHRlbXBsYXRlLndwY3BhbmVsLmNvbTCCASIwDQYJKoZIhvcN AQEBBQADggEPADCCAQoCggEBAM2V0SQaPui6Vh53maJBOmQWtmRiW0tSp7She80q MZIL/VX95C3+uHI7vOcRro2NnDY61Qeu4OT97xc0gduGiUT4TUU+YJgGNoWt0qH8 s9fDbKE3g2erJt9ftRFe2QNb03NOLFHgqiFgbe0B+TCQu/aD04XsBSkPlLcR+WN/ 2yDE8LPKFYPVTX094phi0MrPFfngqJ32hKMCMvFakzkMFwzNfDtDPRCVpvplXHDU EBuSLdsvSHkAbZQzigGi4e9Z8dPV3xB+a7CBVmZ2d2h0ZmyU4SjJUkyCm7j65VKX bXJ/OelnU7+htwPci4lOL3p2GVE4uoppjqjU2v1U0mbyuukCAwEAAaOB6zCB6DAd BgNVHQ4EFgQU8j149ZEGHaKKqxl0w4tE6fFIx7kwCQYDVR0TBAIwADB5BgNVHSME cjBwgBTyPXj1kQYdooqrGXTDi0Tp8UjHuaFSpFAwTjEqMCgGCSqGSIb3DQEJARYb c3NsQGNwdGVtcGxhdGUud3BjcGFuZWwuY29tMSAwHgYDVQQDDBdjcHRlbXBsYXRl LndwY3BhbmVsLmNvbYIETyu6lzAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUH AwIwIgYDVR0RBBswGYIXY3B0ZW1wbGF0ZS53cGNwYW5lbC5jb20wDQYJKoZIhvcN AQELBQADggEBAIvEu3jBDWW21tw8S8F9ki2kMzWdeKYWpBmM9O2TUwAEiQWLr+eT J7MkNG1kvbLCLJcQehoqKHxYyXCE1k7Wcl5moE4fqaNGKOkSeTpduOgvNGfoLqOZ RgCzvkGb5kg6uW+WmebDQHDw6bd632SqFsoY77JA+BCZvBWWxK7uCTcXdDTL4qGj e3HlF3baTphDloo0jEUyiVnCbOqhdYVcFJWzhHtJrNoaVI0+QIbaUlJKGBLa+oY7 zY5pQVTghbHnoQv/grvvhNV/BFY79I/zNVXMyE+K8UbT2uUqneGX2pURKhondWg9 aQSJFYntozIbA9IoZAHgKTBVuWDOEJl6fBo= -----END CERTIFICATE----- ===FILE:/home/approve/austgaming.approveforlaunch.com.au/web/themes/custom/agc_theme/node_modules/bower/lib/node_modules/http-signature/http_signing.md=== # Abstract This document describes a way to add origin authentication, message integrity, and replay resistance to HTTP REST requests. It is intended to be used over the HTTPS protocol. # Copyright Notice Copyright (c) 2011 Joyent, Inc. and the persons identified as document authors. All rights reserved. Code Components extracted from this document must include MIT License text. # Introduction This protocol is intended to provide a standard way for clients to sign HTTP requests. RFC2617 (HTTP Authentication) defines Basic and Digest authentication mechanisms, and RFC5246 (TLS 1.2) defines client-auth, both of which are widely employed on the Internet today. However, it is common place that the burdens of PKI prevent web service operators from deploying that methodology, and so many fall back to Basic authentication, which has poor security characteristics. Additionally, OAuth provides a fully-specified alternative for authorization of web service requests, but is not (always) ideal for machine to machine communication, as the key acquisition steps (generally) imply a fixed infrastructure that may not make sense to a service provider (e.g., symmetric keys). Several web service providers have invented their own schemes for signing HTTP requests, but to date, none have been placed in the public domain as a standard. This document serves that purpose. There are no techniques in this proposal that are novel beyond previous art, however, this aims to be a simple mechanism for signing these requests. # Signature Authentication Scheme The "signature" authentication scheme is based on the model that the client must authenticate itself with a digital signature produced by either a private asymmetric key (e.g., RSA) or a shared symmetric key (e.g., HMAC). The scheme is parameterized enough such that it is not bound to any particular key type or signing algorithm. However, it does explicitly assume that clients can send an HTTP `Date` header. ## Authorization Header The client is expected to send an Authorization header (as defined in RFC 2617) with the following parameterization: credentials := "Signature" params params := 1#(keyId | algorithm | [headers] | [ext] | signature) digitalSignature := plain-string keyId := "keyId" "=" <"> plain-string <"> algorithm := "algorithm" "=" <"> plain-string <"> headers := "headers" "=" <"> 1#headers-value <"> ext := "ext" "=" <"> plain-string <"> signature := "signature" "=" <"> plain-string <"> headers-value := plain-string plain-string = 1*( %x20-21 / %x23-5B / %x5D-7E ) ### Signature Parameters #### keyId REQUIRED. The `keyId` field is an opaque string that the server can use to look up the component they need to validate the signature. It could be an SSH key fingerprint, an LDAP DN, etc. Management of keys and assignment of `keyId` is out of scope for this document. #### algorithm REQUIRED. The `algorithm` parameter is used if the client and server agree on a non-standard digital signature algorithm. The full list of supported signature mechanisms is listed below. #### headers OPTIONAL. The `headers` parameter is used to specify the list of HTTP headers used to sign the request. If specified, it should be a quoted list of HTTP header names, separated by a single space character. By default, only one HTTP header is signed, which is the `Date` header. Note that the list MUST be specified in the order the values are concatenated together during signing. To include the HTTP request line in the signature calculation, use the special `request-line` value. While this is overloading the definition of `headers` in HTTP linguism, the request-line is defined in RFC 2616, and as the outlier from headers in useful signature calculation, it is deemed simpler to simply use `request-line` than to add a separate parameter for it. #### extensions OPTIONAL. The `extensions` parameter is used to include additional information which is covered by the request. The content and format of the string is out of scope for this document, and expected to be specified by implementors. #### signature REQUIRED. The `signature` parameter is a `Base64` encoded digital signature generated by the client. The client uses the `algorithm` and `headers` request parameters to form a canonicalized `signing string`. This `signing string` is then signed with the key associated with `keyId` and the algorithm corresponding to `algorithm`. The `signature` parameter is then set to the `Base64` encoding of the signature. ### Signing String Composition In order to generate the string that is signed with a key, the client MUST take the values of each HTTP header specified by `headers` in the order they appear. 1. If the header name is not `request-line` then append the lowercased header name followed with an ASCII colon `:` and an ASCII space ` `. 2. If the header name is `request-line` then append the HTTP request line, otherwise append the header value. 3. If value is not the last value then append an ASCII newline `\n`. The string MUST NOT include a trailing ASCII newline. # Example Requests All requests refer to the following request (body omitted): POST /foo HTTP/1.1 Host: example.org Date: Tue, 07 Jun 2014 20:51:35 GMT Content-Type: application/json Digest: SHA-256=X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE= Content-Length: 18 The "rsa-key-1" keyId refers to a private key known to the client and a public key known to the server. The "hmac-key-1" keyId refers to key known to the client and server. ## Default parameterization The authorization header and signature would be generated as: Authorization: Signature keyId="rsa-key-1",algorithm="rsa-sha256",signature="Base64(RSA-SHA256(signing string))" The client would compose the signing string as: date: Tue, 07 Jun 2014 20:51:35 GMT ## Header List The authorization header and signature would be generated as: Authorization: Signature keyId="rsa-key-1",algorithm="rsa-sha256",headers="(request-target) date content-type digest",signature="Base64(RSA-SHA256(signing string))" The client would compose the signing string as (`+ "\n"` inserted for readability): (request-target) post /foo + "\n" date: Tue, 07 Jun 2011 20:51:35 GMT + "\n" content-type: application/json + "\n" digest: SHA-256=Base64(SHA256(Body)) ## Algorithm The authorization header and signature would be generated as: Authorization: Signature keyId="hmac-key-1",algorithm="hmac-sha1",signature="Base64(HMAC-SHA1(signing string))" The client would compose the signing string as: date: Tue, 07 Jun 2011 20:51:35 GMT # Signing Algorithms Currently supported algorithm names are: * rsa-sha1 * rsa-sha256 * rsa-sha512 * dsa-sha1 * hmac-sha1 * hmac-sha256 * hmac-sha512 # Security Considerations ## Default Parameters Note the default parameterization of the `Signature` scheme is only safe if all requests are carried over a secure transport (i.e., TLS). Sending the default scheme over a non-secure transport will leave the request vulnerable to spoofing, tampering, replay/repudiation, and integrity violations (if using the STRIDE threat-modeling methodology). ## Insecure Transports If sending the request over plain HTTP, service providers SHOULD require clients to sign ALL HTTP headers, and the `request-line`. Additionally, service providers SHOULD require `Content-MD5` calculations to be performed to ensure against any tampering from clients. ## Nonces Nonces are out of scope for this document simply because many service providers fail to implement them correctly, or do not adopt security specifications because of the infrastructure complexity. Given the `header` parameterization, a service provider is fully enabled to add nonce semantics into this scheme by using something like an `x-request-nonce` header, and ensuring it is signed with the `Date` header. ## Clock Skew As the default scheme is to sign the `Date` header, service providers SHOULD protect against logged replay attacks by enforcing a clock skew. The server SHOULD be synchronized with NTP, and the recommendation in this specification is to allow 300s of clock skew (in either direction). ## Required Headers to Sign It is out of scope for this document to dictate what headers a service provider will want to enforce, but service providers SHOULD at minimum include the `Date` header. # References ## Normative References * [RFC2616] Hypertext Transfer Protocol -- HTTP/1.1 * [RFC2617] HTTP Authentication: Basic and Digest Access Authentication * [RFC5246] The Transport Layer Security (TLS) Protocol Version 1.2 ## Informative References Name: Mark Cavage (editor) Company: Joyent, Inc. Email: mark.cavage@joyent.com URI: http://www.joyent.com # Appendix A - Test Values The following test data uses the RSA (1024b) keys, which we will refer to as `keyId=Test` in the following samples: -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDCFENGw33yGihy92pDjZQhl0C3 6rPJj+CvfSC8+q28hxA161QFNUd13wuCTUcq0Qd2qsBe/2hFyc2DCJJg0h1L78+6 Z4UMR7EOcpfdUE9Hf3m/hs+FUR45uBJeDK1HSFHD8bHKD6kv8FPGfJTotc+2xjJw oYi+1hqp1fIekaxsyQIDAQAB -----END PUBLIC KEY----- -----BEGIN RSA PRIVATE KEY----- MIICXgIBAAKBgQDCFENGw33yGihy92pDjZQhl0C36rPJj+CvfSC8+q28hxA161QF NUd13wuCTUcq0Qd2qsBe/2hFyc2DCJJg0h1L78+6Z4UMR7EOcpfdUE9Hf3m/hs+F UR45uBJeDK1HSFHD8bHKD6kv8FPGfJTotc+2xjJwoYi+1hqp1fIekaxsyQIDAQAB AoGBAJR8ZkCUvx5kzv+utdl7T5MnordT1TvoXXJGXK7ZZ+UuvMNUCdN2QPc4sBiA QWvLw1cSKt5DsKZ8UETpYPy8pPYnnDEz2dDYiaew9+xEpubyeW2oH4Zx71wqBtOK kqwrXa/pzdpiucRRjk6vE6YY7EBBs/g7uanVpGibOVAEsqH1AkEA7DkjVH28WDUg f1nqvfn2Kj6CT7nIcE3jGJsZZ7zlZmBmHFDONMLUrXR/Zm3pR5m0tCmBqa5RK95u 412jt1dPIwJBANJT3v8pnkth48bQo/fKel6uEYyboRtA5/uHuHkZ6FQF7OUkGogc mSJluOdc5t6hI1VsLn0QZEjQZMEOWr+wKSMCQQCC4kXJEsHAve77oP6HtG/IiEn7 kpyUXRNvFsDE0czpJJBvL/aRFUJxuRK91jhjC68sA7NsKMGg5OXb5I5Jj36xAkEA gIT7aFOYBFwGgQAQkWNKLvySgKbAZRTeLBacpHMuQdl1DfdntvAyqpAZ0lY0RKmW G6aFKaqQfOXKCyWoUiVknQJAXrlgySFci/2ueKlIE1QqIiLSZ8V8OlpFLRnb1pzI 7U1yQXnTAEFYM560yJlzUpOb1V4cScGd365tiSMvxLOvTA== -----END RSA PRIVATE KEY----- And all examples use this request: <!-- httpreq --> POST /foo?param=value&pet=dog HTTP/1.1 Host: example.com Date: Thu, 05 Jan 2014 21:31:40 GMT Content-Type: application/json Digest: SHA-256=X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE= Content-Length: 18 {"hello": "world"} <!-- /httpreq --> ### Default The string to sign would be: <!-- sign {"name": "Default", "options": {"keyId":"Test", "algorithm": "rsa-sha256"}} --> <!-- signstring --> date: Thu, 05 Jan 2014 21:31:40 GMT <!-- /signstring --> The Authorization header would be: <!-- authz --> Authorization: Signature keyId="Test",algorithm="rsa-sha256",headers="date",signature="jKyvPcxB4JbmYY4mByyBY7cZfNl4OW9HpFQlG7N4YcJPteKTu4MWCLyk+gIr0wDgqtLWf9NLpMAMimdfsH7FSWGfbMFSrsVTHNTk0rK3usrfFnti1dxsM4jl0kYJCKTGI/UWkqiaxwNiKqGcdlEDrTcUhhsFsOIo8VhddmZTZ8w=" <!-- /authz --> ### All Headers Parameterized to include all headers, the string to sign would be (`+ "\n"` inserted for readability): <!-- sign {"name": "All Headers", "options": {"keyId":"Test", "algorithm": "rsa-sha256", "headers": ["(request-target)", "host", "date", "content-type", "digest", "content-length"]}} --> <!-- signstring --> (request-target): post /foo?param=value&pet=dog host: example.com date: Thu, 05 Jan 2014 21:31:40 GMT content-type: application/json digest: SHA-256=X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE= content-length: 18 <!-- /signstring --> The Authorization header would be: <!-- authz --> Authorization: Signature keyId="Test",algorithm="rsa-sha256",headers="(request-target) host date content-type digest content-length",signature="Ef7MlxLXoBovhil3AlyjtBwAL9g4TN3tibLj7uuNB3CROat/9KaeQ4hW2NiJ+pZ6HQEOx9vYZAyi+7cmIkmJszJCut5kQLAwuX+Ms/mUFvpKlSo9StS2bMXDBNjOh4Auj774GFj4gwjS+3NhFeoqyr/MuN6HsEnkvn6zdgfE2i0=" <!-- /authz --> ## Generating and verifying signatures using `openssl` The `openssl` commandline tool can be used to generate or verify the signatures listed above. Compose the signing string as usual, and pipe it into the the `openssl dgst` command, then into `openssl enc -base64`, as follows: $ printf 'date: Thu, 05 Jan 2014 21:31:40 GMT' | \ openssl dgst -binary -sign /path/to/private.pem -sha256 | \ openssl enc -base64 jKyvPcxB4JbmYY4mByyBY7cZfNl4OW9Hp... $ The `-sha256` option is necessary to produce an `rsa-sha256` signature. You can select other hash algorithms such as `sha1` by changing this argument. To verify a signature, first save the signature data, Base64-decoded, into a file, then use `openssl dgst` again with the `-verify` option: $ echo 'jKyvPcxB4JbmYY4mByy...' | openssl enc -A -d -base64 > signature $ printf 'date: Thu, 05 Jan 2014 21:31:40 GMT' | \ openssl dgst -sha256 -verify /path/to/public.pem -signature ./signature Verified OK $ ## Generating and verifying signatures using `sshpk-sign` You can also generate and check signatures using the `sshpk-sign` tool which is included with the `sshpk` package in `npm`. Compose the signing string as above, and pipe it into `sshpk-sign` as follows: $ printf 'date: Thu, 05 Jan 2014 21:31:40 GMT' | \ sshpk-sign -i /path/to/private.pem jKyvPcxB4JbmYY4mByyBY7cZfNl4OW9Hp... $ This will produce an `rsa-sha256` signature by default, as you can see using the `-v` option: sshpk-sign: using rsa-sha256 with a 1024 bit key You can also use `sshpk-verify` in a similar manner: $ printf 'date: Thu, 05 Jan 2014 21:31:40 GMT' | \ sshpk-verify -i ./public.pem -s 'jKyvPcxB4JbmYY...' OK $ ===FILE:/home/approve/austgaming.approveforlaunch.com.au/web/themes/custom/agc_theme/node_modules/browser-sync/certs/server.key=== -----BEGIN RSA PRIVATE KEY----- MIIEogIBAAKCAQEAxEtHZysoHhf/2kzeBHrjWIOxxlZbdqqjvSdQPHOjkGGTy66m rPQR91GgIsJR5CLFWnccnUeqeKUxbt0RMYaQMcp3ElGOuQGtgeETcrD8sILi0Rvj TQXoiSbo651U8gE/4K7B80DDvQodLH8K0ittPPQeEMLpc3RrOnf2kMtEGdZaW7Pe JT6sUszHthPZDyTWdADBxeTMuN5Tu3EC3algZBSC8FARM7lEjtBDQKbBpXiB8dYY AEFNffhZC6fuDVBi6Ssbf/h9V40vMZbvzsUoK8vTsFPKYlPBddtNM9eDhyHD2n5i Qss+uv4A5V788XUwmmkNPeAp0owcWje8zJxR/QIDAQABAoIBADbeT/wvnQwkazkL CXg5HXltfnDRTMmz0wcZiR0MueiuzdA+ZoqrwqXeJCPzK07YxU+PQelY0fbdPh8e HiM42O+CB5yQPZPLO0O1tWj2vftc6qfG4tdx0lkcDjlmBguLe96DGuWy8cPSousA K/cpemRyXEEVKopCPYLfa4V3u/Z4be2U/39KNjVkHFhSdSYQl6ferhEfUPwTPi7O 7l1/QUBabqN5FzNc2TeMVhhcJkXtYqF3RxGsaRfT0lK/j2hpbX7Bn2T0CfA/40jY 2OCERqFPfZWx/ShTT52b3fyX/FEua7Nukq/MZdYZou63dDIjCQQyTJSflX6lVojO SuUoumECgYEA6CSkLiKcRLlTfec3LkjqkWtXR5ibL33g/H1fsZEQKFOyMbIXpUkX Hybpku8NGeetjKynO3yRirp+NiBHGPn3cHc9WJ5GGG1ew9hRQ9QzyC3Tit15TDbu J8i50/MaQHZSiUCnPQ/ceIZCNz8STcsEz87o/7utRLJKOvIIAPj+/8kCgYEA2Hd/ v5oUroMRbtzPtMJDMHiGEQyNxEGDNqcuxgXSmiEEqPLfk2qR3yLffzA9UQOg4wkX /dSXsyomPriKWTvADXu1lNdkPGmW/1tk+onnHu6qgOalva30ZKhtteVjUqxEJEke mHhNHyIVuj6lExLw9LZhVvzoOi+aj4AD+DRS4pUCgYBEtuveOCJ3eUAMiY9c5PqB 9vsL11FAOouJUXcs8VqOBVA+w4+aPktYzkTfWGFRZLGLbWPHCPVv0gof7Wf+Laef o7wF6junaWBeqj5LzJlTTLVMaohIFg5iuli/Mzt3D08ZD4kxWuuQxXT+M24wlsKi 3IU9hYkhR4EPd6sE1q9seQKBgEpQRBAgModywbJgpgH1SyHBzqzdtXGx1/0USg97 gkCdoz7pGm4+gNOs4jOE+Rft+fbXcWAX8vh0OOsBaaWWyKkYVk9B3syKp2cFFlaY rzrETs6v4CiNJsDDvd5bYMzKDR6z54gKjNdqWTE2Pm+c6hHo5uP5MTSAkTxAg5xb QjU9AoGAaYPXlm3IKVO12FgNg/ffduooi0PKa1yRNJGnhpQKNvBQXs8eV+CQ83aK kQHUExuJDrOfsC2iwF/2ZywXhEfbhL7ar0aw5zrhV+r7qvYFWxu/YoLoNVMDByw5 wAN0oIbsGWYmtIIti8+b9IcacTbAZ79ctlTLb1HCyPMosHxDkv8= -----END RSA PRIVATE KEY----- ===FILE:/home/approve/austgaming.approveforlaunch.com.au/web/themes/custom/agc_theme/node_modules/http-signature/http_signing.md=== # Abstract This document describes a way to add origin authentication, message integrity, and replay resistance to HTTP REST requests. It is intended to be used over the HTTPS protocol. # Copyright Notice Copyright (c) 2011 Joyent, Inc. and the persons identified as document authors. All rights reserved. Code Components extracted from this document must include MIT License text. # Introduction This protocol is intended to provide a standard way for clients to sign HTTP requests. RFC2617 (HTTP Authentication) defines Basic and Digest authentication mechanisms, and RFC5246 (TLS 1.2) defines client-auth, both of which are widely employed on the Internet today. However, it is common place that the burdens of PKI prevent web service operators from deploying that methodology, and so many fall back to Basic authentication, which has poor security characteristics. Additionally, OAuth provides a fully-specified alternative for authorization of web service requests, but is not (always) ideal for machine to machine communication, as the key acquisition steps (generally) imply a fixed infrastructure that may not make sense to a service provider (e.g., symmetric keys). Several web service providers have invented their own schemes for signing HTTP requests, but to date, none have been placed in the public domain as a standard. This document serves that purpose. There are no techniques in this proposal that are novel beyond previous art, however, this aims to be a simple mechanism for signing these requests. # Signature Authentication Scheme The "signature" authentication scheme is based on the model that the client must authenticate itself with a digital signature produced by either a private asymmetric key (e.g., RSA) or a shared symmetric key (e.g., HMAC). The scheme is parameterized enough such that it is not bound to any particular key type or signing algorithm. However, it does explicitly assume that clients can send an HTTP `Date` header. ## Authorization Header The client is expected to send an Authorization header (as defined in RFC 2617) with the following parameterization: credentials := "Signature" params params := 1#(keyId | algorithm | [headers] | [ext] | signature) digitalSignature := plain-string keyId := "keyId" "=" <"> plain-string <"> algorithm := "algorithm" "=" <"> plain-string <"> headers := "headers" "=" <"> 1#headers-value <"> ext := "ext" "=" <"> plain-string <"> signature := "signature" "=" <"> plain-string <"> headers-value := plain-string plain-string = 1*( %x20-21 / %x23-5B / %x5D-7E ) ### Signature Parameters #### keyId REQUIRED. The `keyId` field is an opaque string that the server can use to look up the component they need to validate the signature. It could be an SSH key fingerprint, an LDAP DN, etc. Management of keys and assignment of `keyId` is out of scope for this document. #### algorithm REQUIRED. The `algorithm` parameter is used if the client and server agree on a non-standard digital signature algorithm. The full list of supported signature mechanisms is listed below. #### headers OPTIONAL. The `headers` parameter is used to specify the list of HTTP headers used to sign the request. If specified, it should be a quoted list of HTTP header names, separated by a single space character. By default, only one HTTP header is signed, which is the `Date` header. Note that the list MUST be specified in the order the values are concatenated together during signing. To include the HTTP request line in the signature calculation, use the special `request-line` value. While this is overloading the definition of `headers` in HTTP linguism, the request-line is defined in RFC 2616, and as the outlier from headers in useful signature calculation, it is deemed simpler to simply use `request-line` than to add a separate parameter for it. #### extensions OPTIONAL. The `extensions` parameter is used to include additional information which is covered by the request. The content and format of the string is out of scope for this document, and expected to be specified by implementors. #### signature REQUIRED. The `signature` parameter is a `Base64` encoded digital signature generated by the client. The client uses the `algorithm` and `headers` request parameters to form a canonicalized `signing string`. This `signing string` is then signed with the key associated with `keyId` and the algorithm corresponding to `algorithm`. The `signature` parameter is then set to the `Base64` encoding of the signature. ### Signing String Composition In order to generate the string that is signed with a key, the client MUST take the values of each HTTP header specified by `headers` in the order they appear. 1. If the header name is not `request-line` then append the lowercased header name followed with an ASCII colon `:` and an ASCII space ` `. 2. If the header name is `request-line` then append the HTTP request line, otherwise append the header value. 3. If value is not the last value then append an ASCII newline `\n`. The string MUST NOT include a trailing ASCII newline. # Example Requests All requests refer to the following request (body omitted): POST /foo HTTP/1.1 Host: example.org Date: Tue, 07 Jun 2014 20:51:35 GMT Content-Type: application/json Digest: SHA-256=X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE= Content-Length: 18 The "rsa-key-1" keyId refers to a private key known to the client and a public key known to the server. The "hmac-key-1" keyId refers to key known to the client and server. ## Default parameterization The authorization header and signature would be generated as: Authorization: Signature keyId="rsa-key-1",algorithm="rsa-sha256",signature="Base64(RSA-SHA256(signing string))" The client would compose the signing string as: date: Tue, 07 Jun 2014 20:51:35 GMT ## Header List The authorization header and signature would be generated as: Authorization: Signature keyId="rsa-key-1",algorithm="rsa-sha256",headers="(request-target) date content-type digest",signature="Base64(RSA-SHA256(signing string))" The client would compose the signing string as (`+ "\n"` inserted for readability): (request-target) post /foo + "\n" date: Tue, 07 Jun 2011 20:51:35 GMT + "\n" content-type: application/json + "\n" digest: SHA-256=Base64(SHA256(Body)) ## Algorithm The authorization header and signature would be generated as: Authorization: Signature keyId="hmac-key-1",algorithm="hmac-sha1",signature="Base64(HMAC-SHA1(signing string))" The client would compose the signing string as: date: Tue, 07 Jun 2011 20:51:35 GMT # Signing Algorithms Currently supported algorithm names are: * rsa-sha1 * rsa-sha256 * rsa-sha512 * dsa-sha1 * hmac-sha1 * hmac-sha256 * hmac-sha512 # Security Considerations ## Default Parameters Note the default parameterization of the `Signature` scheme is only safe if all requests are carried over a secure transport (i.e., TLS). Sending the default scheme over a non-secure transport will leave the request vulnerable to spoofing, tampering, replay/repudiation, and integrity violations (if using the STRIDE threat-modeling methodology). ## Insecure Transports If sending the request over plain HTTP, service providers SHOULD require clients to sign ALL HTTP headers, and the `request-line`. Additionally, service providers SHOULD require `Content-MD5` calculations to be performed to ensure against any tampering from clients. ## Nonces Nonces are out of scope for this document simply because many service providers fail to implement them correctly, or do not adopt security specifications because of the infrastructure complexity. Given the `header` parameterization, a service provider is fully enabled to add nonce semantics into this scheme by using something like an `x-request-nonce` header, and ensuring it is signed with the `Date` header. ## Clock Skew As the default scheme is to sign the `Date` header, service providers SHOULD protect against logged replay attacks by enforcing a clock skew. The server SHOULD be synchronized with NTP, and the recommendation in this specification is to allow 300s of clock skew (in either direction). ## Required Headers to Sign It is out of scope for this document to dictate what headers a service provider will want to enforce, but service providers SHOULD at minimum include the `Date` header. # References ## Normative References * [RFC2616] Hypertext Transfer Protocol -- HTTP/1.1 * [RFC2617] HTTP Authentication: Basic and Digest Access Authentication * [RFC5246] The Transport Layer Security (TLS) Protocol Version 1.2 ## Informative References Name: Mark Cavage (editor) Company: Joyent, Inc. Email: mark.cavage@joyent.com URI: http://www.joyent.com # Appendix A - Test Values The following test data uses the RSA (1024b) keys, which we will refer to as `keyId=Test` in the following samples: -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDCFENGw33yGihy92pDjZQhl0C3 6rPJj+CvfSC8+q28hxA161QFNUd13wuCTUcq0Qd2qsBe/2hFyc2DCJJg0h1L78+6 Z4UMR7EOcpfdUE9Hf3m/hs+FUR45uBJeDK1HSFHD8bHKD6kv8FPGfJTotc+2xjJw oYi+1hqp1fIekaxsyQIDAQAB -----END PUBLIC KEY----- -----BEGIN RSA PRIVATE KEY----- MIICXgIBAAKBgQDCFENGw33yGihy92pDjZQhl0C36rPJj+CvfSC8+q28hxA161QF NUd13wuCTUcq0Qd2qsBe/2hFyc2DCJJg0h1L78+6Z4UMR7EOcpfdUE9Hf3m/hs+F UR45uBJeDK1HSFHD8bHKD6kv8FPGfJTotc+2xjJwoYi+1hqp1fIekaxsyQIDAQAB AoGBAJR8ZkCUvx5kzv+utdl7T5MnordT1TvoXXJGXK7ZZ+UuvMNUCdN2QPc4sBiA QWvLw1cSKt5DsKZ8UETpYPy8pPYnnDEz2dDYiaew9+xEpubyeW2oH4Zx71wqBtOK kqwrXa/pzdpiucRRjk6vE6YY7EBBs/g7uanVpGibOVAEsqH1AkEA7DkjVH28WDUg f1nqvfn2Kj6CT7nIcE3jGJsZZ7zlZmBmHFDONMLUrXR/Zm3pR5m0tCmBqa5RK95u 412jt1dPIwJBANJT3v8pnkth48bQo/fKel6uEYyboRtA5/uHuHkZ6FQF7OUkGogc mSJluOdc5t6hI1VsLn0QZEjQZMEOWr+wKSMCQQCC4kXJEsHAve77oP6HtG/IiEn7 kpyUXRNvFsDE0czpJJBvL/aRFUJxuRK91jhjC68sA7NsKMGg5OXb5I5Jj36xAkEA gIT7aFOYBFwGgQAQkWNKLvySgKbAZRTeLBacpHMuQdl1DfdntvAyqpAZ0lY0RKmW G6aFKaqQfOXKCyWoUiVknQJAXrlgySFci/2ueKlIE1QqIiLSZ8V8OlpFLRnb1pzI 7U1yQXnTAEFYM560yJlzUpOb1V4cScGd365tiSMvxLOvTA== -----END RSA PRIVATE KEY----- And all examples use this request: <!-- httpreq --> POST /foo?param=value&pet=dog HTTP/1.1 Host: example.com Date: Thu, 05 Jan 2014 21:31:40 GMT Content-Type: application/json Digest: SHA-256=X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE= Content-Length: 18 {"hello": "world"} <!-- /httpreq --> ### Default The string to sign would be: <!-- sign {"name": "Default", "options": {"keyId":"Test", "algorithm": "rsa-sha256"}} --> <!-- signstring --> date: Thu, 05 Jan 2014 21:31:40 GMT <!-- /signstring --> The Authorization header would be: <!-- authz --> Authorization: Signature keyId="Test",algorithm="rsa-sha256",headers="date",signature="jKyvPcxB4JbmYY4mByyBY7cZfNl4OW9HpFQlG7N4YcJPteKTu4MWCLyk+gIr0wDgqtLWf9NLpMAMimdfsH7FSWGfbMFSrsVTHNTk0rK3usrfFnti1dxsM4jl0kYJCKTGI/UWkqiaxwNiKqGcdlEDrTcUhhsFsOIo8VhddmZTZ8w=" <!-- /authz --> ### All Headers Parameterized to include all headers, the string to sign would be (`+ "\n"` inserted for readability): <!-- sign {"name": "All Headers", "options": {"keyId":"Test", "algorithm": "rsa-sha256", "headers": ["(request-target)", "host", "date", "content-type", "digest", "content-length"]}} --> <!-- signstring --> (request-target): post /foo?param=value&pet=dog host: example.com date: Thu, 05 Jan 2014 21:31:40 GMT content-type: application/json digest: SHA-256=X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE= content-length: 18 <!-- /signstring --> The Authorization header would be: <!-- authz --> Authorization: Signature keyId="Test",algorithm="rsa-sha256",headers="(request-target) host date content-type digest content-length",signature="Ef7MlxLXoBovhil3AlyjtBwAL9g4TN3tibLj7uuNB3CROat/9KaeQ4hW2NiJ+pZ6HQEOx9vYZAyi+7cmIkmJszJCut5kQLAwuX+Ms/mUFvpKlSo9StS2bMXDBNjOh4Auj774GFj4gwjS+3NhFeoqyr/MuN6HsEnkvn6zdgfE2i0=" <!-- /authz --> ## Generating and verifying signatures using `openssl` The `openssl` commandline tool can be used to generate or verify the signatures listed above. Compose the signing string as usual, and pipe it into the the `openssl dgst` command, then into `openssl enc -base64`, as follows: $ printf 'date: Thu, 05 Jan 2014 21:31:40 GMT' | \ openssl dgst -binary -sign /path/to/private.pem -sha256 | \ openssl enc -base64 jKyvPcxB4JbmYY4mByyBY7cZfNl4OW9Hp... $ The `-sha256` option is necessary to produce an `rsa-sha256` signature. You can select other hash algorithms such as `sha1` by changing this argument. To verify a signature, first save the signature data, Base64-decoded, into a file, then use `openssl dgst` again with the `-verify` option: $ echo 'jKyvPcxB4JbmYY4mByy...' | openssl enc -A -d -base64 > signature $ printf 'date: Thu, 05 Jan 2014 21:31:40 GMT' | \ openssl dgst -sha256 -verify /path/to/public.pem -signature ./signature Verified OK $ ## Generating and verifying signatures using `sshpk-sign` You can also generate and check signatures using the `sshpk-sign` tool which is included with the `sshpk` package in `npm`. Compose the signing string as above, and pipe it into `sshpk-sign` as follows: $ printf 'date: Thu, 05 Jan 2014 21:31:40 GMT' | \ sshpk-sign -i /path/to/private.pem jKyvPcxB4JbmYY4mByyBY7cZfNl4OW9Hp... $ This will produce an `rsa-sha256` signature by default, as you can see using the `-v` option: sshpk-sign: using rsa-sha256 with a 1024 bit key You can also use `sshpk-verify` in a similar manner: $ printf 'date: Thu, 05 Jan 2014 21:31:40 GMT' | \ sshpk-verify -i ./public.pem -s 'jKyvPcxB4JbmYY...' OK $ ===FILE:/home/approve/austgaming.approveforlaunch.com.au/web/themes/custom/agc_theme/node_modules/node-gyp/test/fixtures/server.key=== -----BEGIN PRIVATE KEY----- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDA5gjs5nYVf9iN GAtmgNCVs9zlRldT+PR7XDCIk0+08RrH1jlSjNrQ+e0iTORzZJ+9D4gmuFejfzm0 jRbmO66psecTtSuNS4+NRfo0d6+TFyz9+WaNqfnCdkxw+waEfvVYO5QQR+W9mKF/ ZJ7bH7GBm0yFzlcaZWZG5kVgq+SBSEDb/Dz9Csr6M9Of1BEnFmNY2HZEF0LUHu7i N99KY5JSWNgUfUjZ5N5j5F2LphQhhJT2AShnGy/dOJpKiZ8wXmO3Yyi6jozMD4iE u+8WNytymHVDGCL1GR90Iwx34imb1hYQuTIbVsNGlDLSLIcPiC9WwCrPVjYp1FJ1 zcq36dOrAgMBAAECggEACg60Xm2xsHNG/ixHw+NpfLSxCr89JGKxlJD88tIDcOK1 S8AOoxA3BHhTddteeenALmJV7fbkkuC6SICmtgBcnfppmuxyRd6vsGT6o6ut2tR1 gxRy1WYMYKg8WhOshlH8RspscODeyKDhorvDUJd5cNGBDuTwQ68PwxiUe3La6iac EVQoKohg9EmRIhMF1i8I00zXE8p3XENrlTc491ipc+gLPIP5vtqHyQztEUkZHkWd dXbs+n1hGCr+4FxrphGYEW80HINzmume7dGChr8nvF4ZZcuWW13DJuNim6pQno1i hM8VdXm8XphLh0XEGI5OCfu/CetkBILZRXKltZk6AQKBgQDoBqJzRlp7regYNU4q usfS+43tPNaJ0o4DIzcLawqpmK/B/cZStzHl14Sm62BVkKV6cnWAJPeLkENPMFoV 7Q7wLZBJxpPzqXkpeiDkKN4Wovca891Rffne5Sz6IDB5mOxMjfKIEPd5RkmB5Lkp qQLwm3YJ2AJcLagG/Gi1DFDRAQKBgQDU1G9T43Mjke6TXG0u7gCSb+VwyDRsrvJA u2vy6+MANRc1EEF31YLmTKOU5XxUmhtIu7TUbgPoNi0HuRFXx4Zul3BPlAosLMJv kNQbA/9d0YQAfSgTsploN5CX65dLZ4ejIzVgDZREzpIBWTze6YZTA2DT5iOIet84 DD5DujY4qwKBgG0PuUo/9oYOD3tZiv1wwD5+uY6auykbTF9TLStzzBY9y9d+hrsY mx6zOAoRtz1g+TdeF7b9KVJzo//T9XQ68nuYnyreaWrt7SK+4jj8sK+pOEd1+0Cz 20CXLpX/jWmKpP+y9R5aA0kA7cpdjV90rwoTuN8Vpr5XQ5TNDhaTzGUBAoGABYig fGXlkH8y3NICZL37ddNC+/O4qTrDQbudyusnM9ItkEuj6CG9DY/gkPaGjQyUuQdo ZD2YDGmcMh81vDqL3ERDv03yFcP0KkJxwWIRObdA32JhsGFsa7FGKS0O+f7vH+bC dITl3gQg97gCRSl9PJtR4TCSq/HF7Acld01YK5ECgYEAwLFB5JIuxrowJe74cCMP n5Rwuc8vWdOsg+ytvQTv0/hVCdzcaLet6YvagnWTWaU7PUwTFxZs/mLQ9CAWVutK IRzs/GWxGFjH5xotDaJdDDzSdQye4tUqvUVxv7zzzsVycCPBYFkyRQ8Tmr5FLtUJ Cl48TZ6J8Rx5avjdtOw3QC8= -----END PRIVATE KEY----- ===FILE:/home/approve/austgaming.approveforlaunch.com.au/web/themes/custom/agc_theme/node_modules/public-encrypt/test/1024.priv=== -----BEGIN PRIVATE KEY----- MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAKulUTZ8B1qccZ8c DXRGSY08gW8KvLlcxxxGC4gZHNT3CBUF8n5R4KE30aZyYZ/rtsQZu05juZJxaJ0q mbe75dlQ5d+Xc9BMXeQg/MpTZw5TAN7OIdGYYpFBe+1PLZ6wEfjkYrMqMUcfq2Lq hTLdAbvBJnuRcYZLqmBeOQ8FTrKrAgMBAAECgYEAnkHRbEPU3/WISSQrP36iyCb2 S/SBZwKkzmvCrBxDWhPeDswp9c/2JY76rNWfLzy8iXgUG8WUzvHje61Qh3gmBcKe bUaTGl4Vy8Ha1YBADo5RfRrdm0FE4tvgvu/TkqFqpBBZweu54285hk5zlG7n/D7Y dnNXUpu5MlNb5x3gW0kCQQDUL//cwcXUxY/evaJP4jSe+ZwEQZo+zXRLiPUulBoV aw28CVMuxdgwqAo1X1IKefPeUaf7RQu8gCKaRnpGuEuXAkEAzxZTfMmvmCUDIew4 5Gk6bK265XQWdhcgiq254lpBGOYmDj9yCE7yA+zmASQwMsXTdQOi1hOCEyrXuSJ5 c++EDQJAFh3WrnzoEPByuYXMmET8tSFRWMQ5vpgNqh3haHR5b4gUC2hxaiunCBNL 1RpVY9AoUiDywGcG/SPh93CnKB3niwJBAKP7AtsifZgVXtiizB4aMThTjVYaSZrz D0Kg9DuHylpkDChmFu77TGrNUQgAVuYtfhb/bRblVa/F0hJ4eQHT3JUCQBVT68tb OgRUk0aP9tC3021VN82X6+klowSQN8oBPX8+TfDWSUilp/+j24Hky+Z29Do7yR/R qutnL92CvBlVLV4= -----END PRIVATE KEY----- ===FILE:/home/approve/austgaming.approveforlaunch.com.au/web/themes/custom/agc_theme/node_modules/public-encrypt/test/ec.pass.priv=== -----BEGIN ENCRYPTED PRIVATE KEY----- MIHeMEkGCSqGSIb3DQEFDTA8MBsGCSqGSIb3DQEFDDAOBAi9LqZQx4JFXAICCAAw HQYJYIZIAWUDBAECBBA+js1fG4Rv/yRN7oZvxbgyBIGQ/D4yj86M1x8lMsnAHQ/K 7/ryb/baDNHqN9LTZanEGBuyxgrTzt08SiL+h91yFGMoaly029K1VgEI8Lxu5Np/ A+LK7ewh73ABzsbuxYdcXI+rKnrvLN9Tt6veDs4GlqTTsWwq5wF0C+6gaYRBXA74 T1b6NykGh2UNL5U5pHZEYdOVLz+lRJL7gYqlweNHP/S3 -----END ENCRYPTED PRIVATE KEY----- ===FILE:/home/approve/austgaming.approveforlaunch.com.au/web/themes/custom/agc_theme/node_modules/public-encrypt/test/ec.priv=== -----BEGIN EC PRIVATE KEY----- MHQCAQEEIDF6Xv8Sv//wGUWD+c780ppGrU0QdZWCAzxAQPQX8r/uoAcGBSuBBAAK oUQDQgAEIZeowDylls4K/wfBjO18bYo7gGx8nYQRija4e/qEMikOHJai7geeUreU r5Xky/Ax7s2dGtegsPNsPgGe5MpQvg== -----END EC PRIVATE KEY----- ===FILE:/home/approve/austgaming.approveforlaunch.com.au/web/themes/custom/agc_theme/node_modules/public-encrypt/test/pass.1024.priv=== -----BEGIN ENCRYPTED PRIVATE KEY----- MIICzzBJBgkqhkiG9w0BBQ0wPDAbBgkqhkiG9w0BBQwwDgQIji3ZZ6JbsA4CAggA MB0GCWCGSAFlAwQBFgQQC6MKblq8zyX90/KmgotsMQSCAoDghNf+yxPC/KRh7F3O k0lMgtDkV+wCLDv7aBvUqy8Ry2zqFPIlfLb8XtSW943XEu6KUI13IZPEr8p9h1ve Iye6L0g6uAgbFxBE2DwBBSI7mYr7lokr4v0k+inMKf4JeRdI9XWgwOILKTGf1vH7 PhvBnqLhOg6BIOuF426qpiyYlmRda74d0Th4o6ZyhyMSzPI1XbWSg719Ew3N/tLe OHdYl0eFrgNjq+xO4Ev+W7eNIh/XBMQtk9wo+mxeNdldRnX822HxTsL8fSSPs+9T W5M/2EBTJMSsswSjZyFkq8ehtxovI2u0IBX1IiPulyUZLnSNPDV1eUVClK6rk+q1 kVsfJhUr2qvIjNlQWlbEXQj4VwGtgl0++l8vdpj59MuN2J3Nx5TNMLjA6BYAa/tr Bu928QoT7ET+SGx5XKCwKb5fwXmDlV5zZC4kZWTaF/d/Icvj5F+fDZuYFg1JOXNZ +q2oA1qMYaHGX6lF3pbO84ebg1iwQTDM8iIqFeSMGUJTnk/3a7sqfaWQbEQwGb+X fXnSTwkF+wO2rriPbFvWyzecWu67zDCP0ZWUgGb86sSJCM7xRGShESwCjOrb88F1 5SZjyIqogrkc3IWiLH9gc5U8d86qoFjJnP6BfwYks1UIyXNGKfZTCqICpMphV+IS b0N2jprjLTkWR6nxYGSH1bkKMs7x1M0FBLWWLAZqPn9X3pe6JwIBds04O6XjF0un oxwDjcJdoxVs7PgRiM5d1Tubqu2zmpCCmXNiqi9B0+rV9/jHg9IA5gUfvYdCcEv+ oAr90I+2+PuBFa9lgdbDV6DtZk4bSYluqamxVeLPg/vrewYfVfDv6jftfY1D0DEy 69H0 -----END ENCRYPTED PRIVATE KEY----- ===FILE:/home/approve/austgaming.approveforlaunch.com.au/web/themes/custom/agc_theme/node_modules/public-encrypt/test/rsa.1024.priv=== -----BEGIN RSA PRIVATE KEY----- MIICVAIBAAJ/OwswbFo/uyC8ltGf/yA1A+gV5IGdnAgPbUSI3GzbHCA+x+TLG/tL vbRw3r1smppY/jkkpiVW1ErSMuN0uixp5gb78Z9rH1XpWb5WWgp3WaY/9EHMjMdO kQ/9LVZvRvl/M/Fi6owP+q+amJI1BEjECYfbhGL3rmlVdq4qXc40QwIDAQABAn8I VZ0BPoAOhyF33KFMHxy8r28fsVgxJUYgM3NqQgdv4fFawCYXjhJz9duU5YJGFJGJ WUGeHlkyYFlpi4f3m7tY7JawmQUWB0MNSoKHI3cgDX4/tfBN8ni+cO0eSoR5czBY EsAHBU47p1awNFAHwd+ZEuv9H4RmMn7p279rQTtpAkAH3Nqs2/vrRF2cZUN4fIXf 4xHsQBByUayGq8a3J0UGaSFWv68zTUKFherr9uZotNp7NJ4jBXiARw0q8docXUG1 AkAHgmOKHoORtAmikqpmFEJZOtsXMaLCIm4EszPo5ciYoLMBcVit09AdiQlt7ZJL DY02svU1b0agCZ97kDkmHDkXAkACa8M9JELuDs/P/vIGYDkMVatIFfW6bWF02eFG taWwMqCcSEsWvbw0xqYt34jURpNbCjmCyQVwYfAw/+TLhP9dAkAFwRjdwjw37qpj ddg1mNiu37b7swFxmkiMOXZRxaNNsfb56A14RpN3zob3QdGUybGodMIKTFbmU/lu CjqAxafJAkAG2yf6RWbwFIWfMyt7WYCh0VaGBCcgy574AinVieEo3ZZyFfC63+xm 3uoaNy4iLoJv4GCjqUBz3ZfcVaO/DDWG -----END RSA PRIVATE KEY----- ===FILE:/home/approve/austgaming.approveforlaunch.com.au/web/themes/custom/agc_theme/node_modules/public-encrypt/test/rsa.2028.priv=== -----BEGIN RSA PRIVATE KEY----- MIIEjwIBAAKB/gy7mjaWgPeFdVYDZWRCA9BNiv3pPb0es27+FKY0hszLaOw47ExC tAWpDsH48TXAfyHBYwBLguayfk4LGIupxb+CGMbRo3xEp0CbfY1Jby26T9vGjRC1 foHDDUJG84uaRbyHqaf4i6zt4gVR+xlAEIjkaFAAK8cOoXAT1CVqGLLljUCchL8P jaHj/yriZ/S7rdwlI3LnABxwwmLrmR/v71WtpmO/aNG8N+1po+QwaghTkyQ59E/Z vAuOkFWHok2q/R6PYAa2jdZ9zim0FqOP+nkQaEDRbBFBmBqTv5fFGfk2WsAfKf/R G0/VFd+ZeM5251TeTvXH695nlSGauVl9AgMBAAECgf4LrWHY/l54ouThZWvvbrug pfz6sJX2g9l7yXmWlEWsPECVo/7SUbpYFpt6OZy99zSg+IKbGqWKfdhoKrTwIVtC L0YZ0NlmdnANSIz0roxQG7ZxkL5+vHSw/PmD9x4Uwf+Cz8hATCmNBv1qc60dkyuW 4CLqe72qaTiVWRoO1iagQghNcLoo6vSy65ExLaCDTPha7yu2vw4hFZpWiEjW4dxf rFdLiix52BC86YlAlxME/rLg8IJVvilbyo9aWdXmxOaUTLRv6PkFD1/gVdw8V9Qr SLN9FlK2kkjiX0dzoibvZw3tMnt3yydAx0X87+sMRVahC1bp3kVPz4Hy0EWX4QJ/ PM31vGiuITk2NCd51DXt1Ltn2OP5FaJSmCaEjh0XkU4qouYyjXWt8Bu6BTCl2vua Fg0Uji9C+IkPLmaUMbMIOwaTk8cWqLthSxsLe70J5OkGrgfKUM/w+BHH1Pt/Pjzj C++l0kiFaOVDVaAV9GpLPLCBoK/PC9Rb/rxMMoCCNwJ/NZuedIny2w3LMii77h/T zSvergNGhjY6Rnva8lLXJ6dlrkcPAyps3gWwxqj4NR0T+GM0bDUPVLb7M07XV7SX v7VJGm52JbRGwM1ss+r8XTTNemeGk+WRxG7TgtsMqYGXLfB8Qxk/f5/Mcc00Tl8u wXFNsfxJxmt6AbsTr3g36wJ/IhOnibz9Ad+nchlBnN3QeW3CKHqzaR18voqvtVm2 kJfHK15prH/sSGmxmiEGgrCJTZxtDbaNCO7/VBjnKudUUIhCAwsLtuq0/zub9vAd 8G1scfIpv5qaSNzmKoX8bOwArvrS6wP7yKrcTsuWIlHD8rJVI7IEDnQoTp5G8fK1 hwJ/MIh8M5v0r5dUYEv6oIJWGcle6AH1JmsP5WIafgq72Z2288pHcCFHwNY8Dg9J 76QswVLnUhPTlmm3EOOPGEtam2iAD5r0Afytlb4lbNoQsj2szeXONDXB+6oueajh VNELUr8HcSP5lgzRZjJW6aFIzj9LDRmQnUAOjGSXVOQtEwJ/MCQZ7N/v4dIKeDRA 8d8UExZ3+gGHumziztGRJ0tQryZH2PakP5I7V+1l7qEUnJ2c3mF+e1v41Ep9LCvh bzrPKw9dxh18g4b+7bMpsWPnsraKh6ipxc7aaOaZV0Dxgez4zcZu0P1olO0cN3KM nxJ0Pds3R8bAhNCDdS2JZaRp5Q== -----END RSA PRIVATE KEY----- ===FILE:/home/approve/austgaming.approveforlaunch.com.au/web/themes/custom/agc_theme/node_modules/public-encrypt/test/rsa.pass.priv=== -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: AES-256-CBC,7A6A055AD675947A657041422F06D439 HQdjzAKUuqqKhZHmpzzY/monfqFhiHnZ5c24jtR9fM4aQJXf/e1fz6MEhyIz6XON sb4CnXZstnxUuVWDkHEu6KWQ/dKALgiDUuT+UdMawVoVPGdgyWZp35pQPWi3fT2V XZn58YkG8bO3Y403eZPyhadOefD1VtuFuK6/f90jjzx6ZDnwveXpYgFV7Jy1/pFd cLLMf07C+hbk416nX6UVipWe4GH+ADFom5ZCfAaUotM7n8i149dULNF4YYi2wP31 1YaDH5vf1CqiaieDY7xLzpEixwJz6ZEg3gLXaUvz2MpF8owiGI3eP0g7voWp3xt4 TQx/qDURlaXiaRriWdWtpKyW1MFuJ5+KdNtR1/kXr2BLPB/ZLwyqtynUy8ZYpb4+ WIRYpUGeb//ZHGhlCH7CRMdABsal4wTwnzi9fW4Ax96ecJ2SlwCuKxwS7iEq2y1/ FAfGwsE+XufHhme5p6XjKfiHx+zJMIB2NMkrm+wm4PbMTrGVnw5/41/r6XxOB8fe iKi12Jth4dusc1vYGYfzKop9uEM6CZ6+Chqzb+Zyh/xUiZVlCX/BYnxr7yXUm9aR PHQgxkn2Act8FgQB3Kgs3jCiCRIJrlsnybeWzQ3YO9TjC4MxygmmwODDBpsOKnEi kXXS54+cZFjcsva4uJVwhAywRPVUkLzmTkH0tGiwCHjeQNECm+TLahkkEIXrVTb9 c9creNXMgE6jVVz+R43HXsGvTcgMcBLyFRQJe2nVaj/dQ5JbF4uqNnQzRjAbD34K uTpFaJ/kmlgcmeScRLnwaoYwFlmhSC+bK0dfY1Jr6AQRA6IDP7nIjqWNDCHNBB8r Qj1v2KWoVQe3xNHaXhkbJPbA2DKlUIqffkBVtMKtt9KuG3Rccf3bVYAW6oid73/D z7DMAF5G/OpVR8VbGh1WxXuR7zEVDUwpwsp9ek5dqN8BnBz1ppdZNIKqzszneckU s2l/6mZBmgV1Nfy/cQU6U5s3S1Xc75UDQVLms3CIOpFTRIpecNTdfa31fYy/svy0 M2lWTbCva0dOyuvMUhTgBL4I7Qa2dUMPXHMZatV5ooHYq/BZJA1r84C5cM5r+umE 2LLv/BlUr7RaQHhaKGn4Qhpzo5yRDE9mEqDpLVkbg8SxMsdf/pEF5/VyUwA9t8RT fKVsInRd386tDqJSDbSFqKTvLztr/5YCyzZzvC2YB1voko/caOGd2d/G51Ij+bXU xEN8U4fHDBsHwPUGb31uZUhTXpL37KiOqZmXFoH2usmuvx882XvyGcV0F4tstMaR KLKzl2PwqzAYGFexLkYKMz0TYIeN6h3b86ETazPPU49nkaEU23Dx21J2Rb3UlH+I lDQF3wuH1QlYiTnlcVa/Zu4QQg0/iP8ALkZ06mvn9e9mOtnA8gsh4B2oLqc19VLU bcpv40dV1H3W9Lcx9B8JYUp0c/Oyno1D7Yj3tjGcwMKECmUpHi4kksehVo0/P933 xmFmC6eyWYVdO9upvY/vKSB7b1dMt85iWr3gnMsSfRYc6jsbSxdjOPST46UsIzjx wa1DS6+Bv5tiaC4uC6X+0tCAZo+UOQMYUbTGRR/7g/c= -----END RSA PRIVATE KEY----- ===FILE:/home/approve/austgaming.approveforlaunch.com.au/web/themes/custom/agc_theme/node_modules/public-encrypt/test/test_key.pem=== -----BEGIN RSA PRIVATE KEY----- MIICXQIBAAKBgQDx3wdzpq2rvwm3Ucun1qAD/ClB+wW+RhR1nVix286QvaNqePAd CAwwLL82NqXcVQRbQ4s95splQnwvjgkFdKVXFTjPKKJI5aV3wSRN61EBVPdYpCre 535yfG/uDysZFCnVQdnCZ1tnXAR8BirxCNjHqbVyIyBGjsNoNCEPb2R35QIDAQAB AoGBAJNem9C4ftrFNGtQ2DB0Udz7uDuucepkErUy4MbFsc947GfENjDKJXr42Kx0 kYx09ImS1vUpeKpH3xiuhwqe7tm4FsCBg4TYqQle14oxxm7TNeBwwGC3OB7hiokb aAjbPZ1hAuNs6ms3Ybvvj6Lmxzx42m8O5DXCG2/f+KMvaNUhAkEA/ekrOsWkNoW9 2n3m+msdVuxeek4B87EoTOtzCXb1dybIZUVv4J48VAiM43hhZHWZck2boD/hhwjC M5NWd4oY6QJBAPPcgBVNdNZSZ8hR4ogI4nzwWrQhl9MRbqqtfOn2TK/tjMv10ALg lPmn3SaPSNRPKD2hoLbFuHFERlcS79pbCZ0CQQChX3PuIna/gDitiJ8oQLOg7xEM wk9TRiDK4kl2lnhjhe6PDpaQN4E4F0cTuwqLAoLHtrNWIcOAQvzKMrYdu1MhAkBm Et3qDMnjDAs05lGT72QeN90/mPAcASf5eTTYGahv21cb6IBxM+AnwAPpqAAsHhYR 9h13Y7uYbaOjvuF23LRhAkBoI9eaSMn+l81WXOVUHnzh3ZwB4GuTyxMXXNOhuiFd 0z4LKAMh99Z4xQmqSoEkXsfM4KPpfhYjF/bwIcP5gOei -----END RSA PRIVATE KEY----- ===FILE:/home/approve/austgaming.approveforlaunch.com.au/web/themes/custom/agc_theme/node_modules/public-encrypt/test/test_rsa_privkey_encrypted.pem=== -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: AES-128-CBC,9D916E00476DFF9E70FA4BA9E3A6CB0E oj0VC35ShSEqlfJ0rLGgkqJCyIK+mXSsa/X/xAur+lI/RVOVTWd7oQQGTdI/0rLX PdQR02Na3X9Rptezh6J04PfMGeFysxdT6RpC+rkHRPVbN0F4TqxSNNXzkwK70+EF dSuDMyVKv9YN4wWDf0g6VKe4ShAH/sqICQBrVyzWyYLvH/hwZmZZ1QEab6ylIKtb EJunwu9BxVVA04bbuATKkKjJOqDn0fG8hb4bYbyD02dJwgLePzzn36F31kcBCEHI tESlD3RsS+EtfpfgPkplXNOhqYzkD9auDb7Zy+ZwL20fjnJb75OSGu8gOg3KTljt mApZOg0nJ5Jk9ATAdyzyVSFOM1Hhcw12ws06Dq9KRnXgO6bbuadLTFRDdvSYDFvD ijUb+97UolQfYIXQMqXli3EIvHr7CTWe/3mpoDgK1mtr0+923Bm97XgE7KSr0L46 n5QpNjCZf1vbXldNmW+TRifiJMgtVdS7x0N4vqDPNEe+FelVv3U4Pz3HIOtFuWLr ZCxlgVxJY4IsyYlV0ItQjIv8fJiAyemZdO2lA9K6h0eEF+9Apr3i79JGWUi74p5D Ooak4le0Va9O34f6FxCGn/a54A6bhKu24Ub/0gr/e4WRa7693euEdgIAZXhtMu2Z taU5SKjjXPzjmRCM2kINHTCENlaU4oFzTmj3TYY/jdKyNP1bHa07NhlomladkIHK GD6HaYkcbuwvh8hOPsopSwuS+NqjnGPq9Vv4ecBC+9veDEmpIE1iR6FK9Hjrre88 kLoMQNmA+vuc8jG4/FIHM3SauQiR1ZJ6+zkz97kcmOf+X7LRaS4j6lfFR6qHiJ6y -----END RSA PRIVATE KEY----- ===FILE:/home/approve/austgaming.approveforlaunch.com.au/web/themes/custom/agc_theme/node_modules/public-encrypt/test/test_rsa_privkey.pem=== -----BEGIN RSA PRIVATE KEY----- MIICXgIBAAKBgQDCFENGw33yGihy92pDjZQhl0C36rPJj+CvfSC8+q28hxA161QF NUd13wuCTUcq0Qd2qsBe/2hFyc2DCJJg0h1L78+6Z4UMR7EOcpfdUE9Hf3m/hs+F UR45uBJeDK1HSFHD8bHKD6kv8FPGfJTotc+2xjJwoYi+1hqp1fIekaxsyQIDAQAB AoGBAJR8ZkCUvx5kzv+utdl7T5MnordT1TvoXXJGXK7ZZ+UuvMNUCdN2QPc4sBiA QWvLw1cSKt5DsKZ8UETpYPy8pPYnnDEz2dDYiaew9+xEpubyeW2oH4Zx71wqBtOK kqwrXa/pzdpiucRRjk6vE6YY7EBBs/g7uanVpGibOVAEsqH1AkEA7DkjVH28WDUg f1nqvfn2Kj6CT7nIcE3jGJsZZ7zlZmBmHFDONMLUrXR/Zm3pR5m0tCmBqa5RK95u 412jt1dPIwJBANJT3v8pnkth48bQo/fKel6uEYyboRtA5/uHuHkZ6FQF7OUkGogc mSJluOdc5t6hI1VsLn0QZEjQZMEOWr+wKSMCQQCC4kXJEsHAve77oP6HtG/IiEn7 kpyUXRNvFsDE0czpJJBvL/aRFUJxuRK91jhjC68sA7NsKMGg5OXb5I5Jj36xAkEA gIT7aFOYBFwGgQAQkWNKLvySgKbAZRTeLBacpHMuQdl1DfdntvAyqpAZ0lY0RKmW G6aFKaqQfOXKCyWoUiVknQJAXrlgySFci/2ueKlIE1QqIiLSZ8V8OlpFLRnb1pzI 7U1yQXnTAEFYM560yJlzUpOb1V4cScGd365tiSMvxLOvTA== -----END RSA PRIVATE KEY-----