fork download
  1. from Crypto.Signature import PKCS1_v1_5
  2. from Crypto.Hash import SHA256
  3. from Crypto.PublicKey import RSA
  4. from hashlib import sha256
  5. import base64
  6.  
  7. pkey = RSA.importKey('-----BEGIN RSA PRIVATE KEY-----\n'+
  8. 'MIIEpAIBAAKCAQEArLJzGeuEerX7wOX/fbNhwf4ZN7rEZfzxDOBIpc+USTFvBSv7\n'+
  9. 'V76h3XW2RXG43EvcRhtBVw13uTcscVS1E+3L366SSEl9WvCvkvlxPHcvGTpDUFVU\n'+
  10. 'v9ZImBgJm0DxWTiwaQZ7nPEOeL6zb7gkWz+CuYKPJQAWC9MPQQG9RdlKYepWyIZ8\n'+
  11. '1g+leI1CaUZnug+j+JGNlUwNplhMTqGgjDxymwCVPJGg+pMQsNwbSvSSGE7OS+bD\n'+
  12. 'OgaL1Z1YRjlYcP1C1h0PydJcLmg8+gaLcFV+WqY5594D7wjQ5Xch8rJPDmPNbjiz\n'+
  13. 'DVcOG9tC5yhwhkCci1qnxegsEEtxW8b+3jN6zwIDAQABAoIBAEMcZdZgy+7T4a2o\n'+
  14. 's4yptQeqMyqRDdmEXjhewFyPOlTnPPmJifcjQcvJ/rcl5mzVnhgwZ0fpF+mGI2M3\n'+
  15. 'Q9cmxd96+6XTyT8Z4WEARpz0w/zNw3LodjLGlxdj3/fRWPkPKp7lwgvPMYyCr0Bv\n'+
  16. 'EtHS8H4e2nnKesbFklv0zRTjyCAcR5x61i5bjvXESTZrgXMHfBjUiFPLNuTZUN4E\n'+
  17. 'AVLrKsQe+oRMCtvwLp6IvSDMH7FagV5Qq2lrw7HDaFFB1yvySk5vjh4pVCWDxjYB\n'+
  18. 'FtxqwalCfCnJyl2O/4lhTblJT862xeeeUixqgo32ZYLoYd+erEkttCbkXvILyDhY\n'+
  19. 's6blQ0ECgYEA9R5hFW7PweHFcvzoVn77oNKzyBA0BawZe8im58rohl0qn3p3YW4i\n'+
  20. 'vHEfdKvSrTghnAzVF/i1CQQ3JGq7BkN7G32sIIwl4l6YdN9swPNh8S4tqr9rXtT7\n'+
  21. 'F9QUnyjmGR4TDyHWZubjs9/gm3HGOsi947v47IL5fiY4MG5tvxr0sdcCgYEAtF0L\n'+
  22. 'SFnsZ8b/JVGz6UeIdiM/GhKWiV0xh2SZOcBHCh9r6CKdVSPegvuXivvWgBnur846\n'+
  23. 'D1mxO8GbVfJPO+KMGjsH6E7ZCuQykuRJpipuAIdB8YCaU/hOUzgOSRrdh3BPP9zO\n'+
  24. 'b+g+NXCZ1xdR1nLrqfmeodgtOTVbKWeR0h8Rz8kCgYBbZ9u+OVdiLoYJ7kPZ1XqS\n'+
  25. 'K2B9b4VmxBmwrk+HSoRRbraxR+LywzZS3UBkqppim/b0kVh5mvYviZHik6ZwnINw\n'+
  26. '6flhHcIW2z2w/4w3m8rfPGAtNzqb34JPDXgvLfo4TZ2/29dvAhTRg9/nN5M7YpZl\n'+
  27. 'MTiPQfw1zZzQeq2UQUIUewKBgQCAr04Ifhg85u9OCiAqFd6YI4e3K4H6WeKnri/g\n'+
  28. '034cC9Uql9/XSjNNEwLJp+sgFOCG0MX+A8l/UCBrTuoXWQkLAgkfR3p12eD3iye9\n'+
  29. 'BdLcT6TOESqLNMN1fq46nI9oPcpdT0Z+853G9SLeIwZB0lawPKhg4uNJSPdU8E9L\n'+
  30. 'Mt27eQKBgQDsF9OE5NJ+IBgCTo9cKAnA6pvByZxsKMTPrxR4kOjd51RtliVpEUfz\n'+
  31. 'LBAcTNGad1MeTkEdAaArIqc/ssVVpKi2bepJhLoPWBNSV7w2t++v+V0JGyxyLDqi\n'+
  32. 'dH8NPnp10Kghj/LlGrhvPpLlVbgTcme78PBJcpLXDkTdJAmY7JYJ2w==\n'+
  33. '-----END RSA PRIVATE KEY-----')
  34.  
  35.  
  36. path = '/v1.0/hello-world'
  37. timestamp = '1970-01-01T00:00:00+00:00'
  38. payload = '{"foo":"bar"}'
  39. hashedPayload = sha256(payload.encode('utf-8')).hexdigest()
  40. data = 'POST:'+path+':'+hashedPayload+':'+timestamp;
  41. print('string to sign : '+data)
  42.  
  43. signer = PKCS1_v1_5.new(pkey)
  44. digest = SHA256.new()
  45. digest.update(data.encode("utf8"))
  46. result = base64.b64encode(signer.sign(digest))
  47. print('signature : ' +result)
  48.  
Success #stdin #stdout 0.03s 11948KB
stdin
Standard input is empty
stdout
string to sign : POST:/v1.0/hello-world:7a38bf81f383f69433ad6e900d35b3e2385593f76a7b7ab5d4355b8ba41ee24b:1970-01-01T00:00:00+00:00
signature : GN9Qk6SIWf4e4lOPU4swyycu/P0Io4BwCVIevtpznIg/fJQpTwRC525tg8pjRR0Fd8Y3ttaz6r3UpiTJQoRrIm1hZDHMcgm6TQCXqACCz1dZ3TLNhklDOEkOwRapA5rsTFbhXfmQjmnGq0496LVL8VQTqkeVfstWGtnXtmgNYRkldOycbahhgh5MtsQPX2wTimBVRPtlTf6UogRxxV5LCtJd9MZ5OCgTri+l6abg9GTlPL4EIu/o1JebydeZdQFJTtYVmQa+j9xFeEddmqX6MjhupYEk14NXm0fUNKd5nvEjsGrZIPDJlZv7MayfPNyN9zmXC6wyhcDem9iHdRPh+Q==