Nobushige Asahi
Nobushige Asahi
It may be a problem comes from string concat. Check my [fixed codes](https://github.com/nob3rise/ISStego).
レビューありがとうございます。 プロトコルの変更についての情報が不足しており申し訳ありません。 ### AttestationObjectのフォーマット変更 こちらについてはFIDOの[CTAPの仕様書](https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html)の情報を参考にしています。 上記の仕様書の[5.1 makeCredential](https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html#authenticatorMakeCredential)にレスポンスデータの詳細を示す表があります。この中にMember nameという項目があり、それぞれの名前の下にインデックスの数値が書かれています。 また、仕様書の[6.2 Response](https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html#responses)のEXAMPLE 6にmakeCredentialのレスポンスデータ例が載っているのですが、こちらでもキーがString値ではなくInt値になっていることが確認できます。 ご紹介頂いた[python-fido2のソース](https://github.com/Yubico/python-fido2/blob/7376b989a4008955cdd11926b3c22279c7b5481d/fido2/ctap2.py#L378)中でもキー名はInt値で定義されており、toStringしたときにはString値で返してくれるようです。 ### makeCredentialのパラメータ修正 こちらもFIDOの[CTAPの仕様書](https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html)の情報を参考にしています。 仕様書の[5.1 makeCredential](https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html#authenticatorMakeCredential)のリクエスト値を表で示している箇所でclientDataHashのDefinitionがさらっと次のように説明してあります。 > Hash of the ClientData contextual binding specified by host. See [WebAuthn]. 当初私もJSONを自分で作ってSHAハッシュを計算するのだと思っていましたが、何度やっても上手くいかず、仕様書を読み返して見たところ上記の記述を見つけて、実装してみたところ上手く行きました。...
ご確認ありがとうございます。 説明不足で申し訳ありません、お察しの通り私が進めていたのはClientとAuthenticator間の通信になります。 確かに[Yahoo Tech Blog](https://techblog.yahoo.co.jp/advent-calendar-2018/webauthn/#navigatorcredentialsget%E3%81%AE%E5%BC%95%E6%95%B0%E3%81%AB%E5%BF%85%E8%A6%81%E3%81%AA%E5%80%A4)の情報を見ると、ServerとClient間の通信ではキー名はStringで渡すのが正しいようで、WebAuthnKit-iOSの実装が誤っているということではないようです。失礼いたしました。 私はConformanceToolをClientに見立てて、WebAuthnKit-iOSを使ったAuthenticatorの動作確認をしています。 また、私が実施しているConformanceToolのテストでは実際のサーバに通信は行われていないため、ご質問の回答としては **Authenticator部分のみに対してのvalidation**になると思います。 私の方でもこのまま確認を続けますので、WebAuthnKit-iOSがCTAP対応するために必要な個所が他に見つかりましたらプルリクエストを改めて上げさせて頂きます。 今回の修正についてはそのまま取り込むと、ClientとServer間の通信に悪影響を及ぼす恐れがありますので提示して頂きました方針で進めて頂ければ問題無いと思います。 今後ともよろしくお願いいたします。