totp
totp(time-based one-time password)とは、unix時間からotp(one-time password)を作成するalgorithmです。例
Uint8Array.toTOTP.js
1. 鍵をデコードしたsecret keyからimportします。2. counterをunix時間を時間ステップで割って作成します。
3. デジタル署名を鍵とcounterから作成します。
4. デジタル署名から最下位4ビットをindexとした4バイトの値を取得します。
5. 4から符号を外した最下位6桁を取得します。
3-5はhotp(hmac-based one-time password)と同じalgorithmです。
- crypto.subtle.importKey
- 鍵のimport
- crypto.subtle.sign
- デジタル署名の作成