@ exodus/ key- 挑战
挑战信封用来证明对密钥的控制. 核查人和 校验器都构建相同的字节,所以这个包是布局的唯一位置 定义.
信封
exodus/challenge/v1:{"verifier":…,"purpose":…,"challenge":…}
这个 exodus/challenge/v1 命名空间由此软件包固定, 并使用
这个 它坐落在JSON体外 所以简写本身不是JSON的
jSON无法与它相撞 无名者
使得挑战难以克服;其他每个领域都是常数a
呼叫者可以不持有任何钥匙就生产.
verifier 命名发出挑战的事务 purpose 名称
在它内部操作。 正在验证的密钥不是信封的一部分 :
核查员已经知道了 因为它被封在钥匙上 或者正在检查
从它的签名,所以在字节中重复它不会增加什么.
使用
给加密密钥盖章的核查人,或为签字签发非证书 键,构建有效载荷:
import { serializeChallenge } from '@exodus/key-challenge'
const plaintext = serializeChallenge({
verifier: 'exodus-pay',
purpose: 'fusion-key-ownership',
challenge: nonce,
})
接收有效载荷的证明人在读取该有效载荷之前就表示:
import { parseChallenge } from '@exodus/key-challenge'
const nonce = parseChallenge({
plaintext,
verifier: 'exodus-pay',
purpose: 'fusion-key-ownership',
})
parseChallenge 比较命令的文字而不是解析和比较
字段. JSON.parse 解析最后一个发生时的重复密钥
前缀为第一个,所以分析与比较将接受第一个有效载荷
purpose 错了 只有非ce从剖析读取.
已经知道非曲直的证明人——因为验证人是在
明确可以签署——用 serializeChallenge 换句话说.
它永远不能在提供的验证符上签名, 或者它成为一个签名神谕
不管那些字节是什么.
字段可在 challenge 没有证明人释放。 没有
插入到它的前面.
此软件包没有做什么
没有关键材料 没有密码 没有存储器 生成非ce、密封或 签了字 记得已经签发的 属于核查人.