{"action":"closed","issue":{"url":"https://api.github.com/repos/paypal/PayPal-Python-SDK/issues/106","labels_url":"https://api.github.com/repos/paypal/PayPal-Python-SDK/issues/106/labels{/name}","comments_url":"https://api.github.com/repos/paypal/PayPal-Python-SDK/issues/106/comments","events_url":"https://api.github.com/repos/paypal/PayPal-Python-SDK/issues/106/events","html_url":"https://github.com/paypal/PayPal-Python-SDK/issues/106","id":95282582,"number":106,"title":"WebhookEvent.verify method returns \"No such digest method\" when directly passing in HTTP_PAYPAL_AUTH_ALGO","user":{"login":"cordery","id":274325,"avatar_url":"https://avatars.githubusercontent.com/u/274325?v=3","gravatar_id":"","url":"https://api.github.com/users/cordery","html_url":"https://github.com/cordery","followers_url":"https://api.github.com/users/cordery/followers","following_url":"https://api.github.com/users/cordery/following{/other_user}","gists_url":"https://api.github.com/users/cordery/gists{/gist_id}","starred_url":"https://api.github.com/users/cordery/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cordery/subscriptions","organizations_url":"https://api.github.com/users/cordery/orgs","repos_url":"https://api.github.com/users/cordery/repos","events_url":"https://api.github.com/users/cordery/events{/privacy}","received_events_url":"https://api.github.com/users/cordery/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/paypal/PayPal-Python-SDK/labels/bug","name":"bug","color":"fc2929"}],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-07-15T20:25:32Z","updated_at":"2015-07-16T22:39:49Z","closed_at":"2015-07-16T22:39:49Z","body":"Looking into it it appears that the header HTTP_PAYPAL_AUTH_ALGO is \"SHA256withRSA\" but OpenSSL.crypto doesn't recognize this as valid.  I noticed that there is a default value for that argument on WebhookEvent.verify which is \"sha256\" which IS a recognized digest.  However, the verify method should work if passed the actual http header as specified in the paypal docs.\r\n\r\nDigging around a bit it appears that \"sha256WithRSAEncryption\" is equivalent to \"SHA256withRSA\" and \"sha256WithRSAEncryption\" IS a recognized value for OpenSSL.crypto.  I know next to nothing about any of this so I suppose that perhaps these three values are all synonyms for each other.  \r\n\r\nThe WebhookEvent.verify method should correctly convert the \"SHA256withRSA\" paypal header message into something that python OpenSSL.crypto understands, however as I'm no expert on this I will not submit a pull request and will let more informed minds figure the best way to resolve this."}}