JanRain:python-openid : 応答メッセージの署名検証

応答署名検証

  • Messageオブジェクト(message)からgetArg(‘assoc_handle’)でアソシエーションハンドルを復元
  • アソシエーションハンドルとOPエンドポイントを元にアソシエーションを復元
  • アソシエーションオブジェクトの checkMessageSignature(message)により署名を検証)

openid.association.Association.checkMessageSignature()

  • Messageオブジェクト(message)からgetArg(‘sig’)で署名を復元
  • getMessageSignature(message)で署名を再計算
  • 二つの署名が一致していたら検証成功

openid.association.Association.getMessageSignature()

  • あたえられたメッセージを元に_makePairsしてペアを生成。
  • sign(pair)によりバイナリの署名を計算。
  • 結果をBase64にする。

_makePairs()でペア生成。

  • あたえられたメッセージオブジェクトからgetArgs(‘signed’)で署名パラメータリストを取得
  • カンマ(‘,’)でスプリットし、リストにする。
  • 各署名パラメータ名にはネームスペースなどがドロップされているので、メッセージオブジェクトのtoPostArgs()でオリジナルのパラメータ名:バリューの辞書を作る。
  • パラメータ名の順番で、[パラメータ1,バリュー1,パラメータ2,バリュー2,…]とlist化する。
カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中