J'ai généré une paire de clés ECDH et obtenu la clé publique correspondante. En utilisant nodejs et la bibliothèque de chiffrement.Analyse de la clé publique ECDH crypto au format JWK pour l'utiliser avec WebCrypto
const ecdh = crypto.createECDH('secp384r1');
ecdh.generateKeys();
const publicKey = ecdh.getPublicKey('hex');
Je suis la mise en œuvre d'une bibliothèque côté client pour chiffrer les données à l'aide de cette clé publique, l'algorithme ECDH et l'interface SubtleCrypto de WebCrypto.
Pour ce faire, je dois importer la clé publique (générée avec nodejs crypto), WebCrypto importKey method a quelques options de format pour le faire, mais je peux le faire fonctionner avec pas d'entre eux. J'ai remarqué que jwk
est plus utilisé que les autres.
Un exemple d'un jwk
est
{
kty: "EC",
crv: "P-256",
x: "kgR_PqO07L8sZOBbw6rvv7O_f7clqDeiE3WnMkb5EoI",
y: "djI-XqCqSyO9GFk_QT_stROMCAROIvU8KOORBgQUemE",
d: "5aPFSt0UFVXYGu-ZKyC9FQIUOAMmnjzdIwkxCMe3Iok",
ext: true,
}
Alors, comment puis-je analyser ma clé publique dans un objet jwk
. Ma clé publique ressemble à ceci: 04f8b2a6e9d2ffa424c3e7b6addf23112153920fd0209390da460f99e03bf8665052e72df4a0b7927381f1b026c98a3a2b348fdd10969875e6b0e86cb1f093a5fc07e49fbbbf091922ce71af17f4a79de03f6069836a7143b137be34451f162235
Merci @rmhrisk, mais la bibliothèque n'analyse pas la clé de jwk. https://github.com/PeculiarVentures/node-webcrypto-ossl/blob/master/lib/subtle.ts#L424. J'ai également essayé d'utiliser le format brut, mais j'ai reçu un 'DOMException' disant:' format de clé d'importation non pris en charge pour l'algorithme' –
Dans quel navigateur êtes-vous? Safari a des problèmes avec importKey – rmhrisk
J'utilise Chrome et Canary, donc je suppose que ce n'est pas le problème. –