Amazon SES SMTP Credentialsをpythonやrubyで作ってみる
http://docs.aws.amazon.com/ses/latest/DeveloperGuide/smtp-credentials.html の下の方に書いてあるJavaのコードをスクリプト言語で書くとどうなるかというのを試してみる。AWS SECRET ACCESS KEYをそのまま書くわけにはいかないので、そこは適当な文字で。
実行したバージョンが分かるようにしておく。バージョン変わるとAPIも変わるかも。
pythonの場合
python 2.7.5 (default, Sep 12 2013, 21:33:34) [GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import base64 >>> import hashlib >>> import hmac >>> base64.b64encode(chr(2) + hmac.new('AWS_SECRET_ACCESS_KEY','SendRawEmail',hashlib.sha256).digest()) 'Aiqnxngua+8IzceF3cMNnR+Tdt0Vo0bXw6z8Q+3U2ls7'
rubyの場合
irb(main):001:0> RUBY_VERSION => "2.0.0" irb(main):002:0> require 'openssl' => true irb(main):003:0> require 'base64' => true irb(main):004:0> Base64.encode64(2.chr + OpenSSL::HMAC.digest(OpenSSL::Digest.new('sha256'), 'AWS_SECRET_ACCESS_KEY', 'SendRawEmail')).chop => "Aiqnxngua+8IzceF3cMNnR+Tdt0Vo0bXw6z8Q+3U2ls7"
rubyの方は実行したら後ろに改行コードが付いてしまったので、chopにて除去。
Javaで実行した結果と一致したので合っているっぽい。