This is documentation for the next version of K6. For the latest stable release, go to the latest version.
JsonWebKey
The JsonWebKey
object represents object/dictionary generated by exporting a CryptoKey
or used as an input parameter for key import.
The properties of the JsonWebKey
could vary depending on the algorithm and key type. See specification JsonWebKey for details.
Properties
Property | Type | Description |
---|---|---|
kty | string | The key type. |
k | string | The key value. |
alg | string | The algorithm. |
ext | bool | The key is extractable. |
key_ops | string array | The key operations. |
crv | string | The curve name. |
x | string | The x coordinate. |
y | string | The y coordinate. |
d | string | The private key. |
Example
import { crypto } from 'k6/experimental/webcrypto';
export default async function () {
const jwk = {
alg: 'HS256',
ext: true,
k: 'H6gLp3lw7w27NrPUn00WpcKU-IJojJdNzhL_8F6se2k',
key_ops: ['sign', 'verify'],
kty: 'oct',
};
const importedKey = await crypto.subtle.importKey(
'jwk',
jwk,
{ name: 'HMAC', hash: { name: 'SHA-256' } },
true,
['sign', 'verify']
);
const exportedAgain = await crypto.subtle.exportKey('jwk', importedKey);
console.log('exported again: ' + JSON.stringify(exportedAgain));
// should print
// INFO[0000] exported again: {"k":"H6gLp3lw7w27NrPUn00WpcKU-IJojJdNzhL_8F6se2k","kty":"oct","ext":true,"key_ops":["sign","verify"],"alg":"HS256"} source=console
}