This repository has been archived on 2023-04-04. You can view files and clone it, but cannot push or open issues or pull requests.
webcrypto/packages/web/test/des.spec.ts

126 lines
3.8 KiB
TypeScript
Raw Normal View History

2022-05-24 12:06:18 +00:00
import * as types from "@peculiar/webcrypto-types";
import * as pvtsutils from "pvtsutils";
import { testCrypto, webCrypto } from "./utils";
context("DES", () => {
testCrypto(webCrypto, [
{
name: "DES-CBC",
actions: {
generateKey: [
{
algorithm: { name: "DES-CBC", length: 64 } as types.DesKeyGenParams,
extractable: false,
keyUsages: ["encrypt", "decrypt", "wrapKey", "unwrapKey"],
},
],
encrypt: [
{
algorithm: {
name: "DES-CBC",
iv: pvtsutils.Convert.FromUtf8String("12345678"),
} as types.DesParams,
data: pvtsutils.Convert.FromUtf8String("test message"),
encData: pvtsutils.Convert.FromHex("3af3f901ff01fe0102dfbbf37d9bdb94"),
key: {
format: "raw",
algorithm: { name: "DES-CBC" },
extractable: true,
keyUsages: ["encrypt", "decrypt"],
data: pvtsutils.Convert.FromUtf8String("12345678"),
},
},
],
import: [
{
name: "raw",
format: "raw",
data: pvtsutils.Convert.FromUtf8String("12345678"),
algorithm: "DES-CBC",
extractable: true,
keyUsages: ["encrypt", "decrypt", "wrapKey", "unwrapKey"],
},
{
name: "jwk",
format: "jwk",
data: {
kty: "oct",
alg: "DES-CBC",
k: "MTIzNDU2Nzg",
ext: true,
key_ops: ["encrypt", "decrypt", "wrapKey", "unwrapKey"],
},
algorithm: "DES-CBC",
extractable: true,
keyUsages: ["encrypt", "decrypt", "wrapKey", "unwrapKey"],
},
],
},
},
{
name: "DES-EDE3-CBC",
actions: {
generateKey: [
{
algorithm: { name: "DES-EDE3-CBC", length: 192 } as types.DesKeyGenParams,
extractable: false,
keyUsages: ["encrypt", "decrypt", "wrapKey", "unwrapKey"],
},
],
encrypt: [
{
algorithm: {
name: "DES-EDE3-CBC",
iv: pvtsutils.Convert.FromUtf8String("12345678"),
} as types.DesParams,
data: pvtsutils.Convert.FromUtf8String("test message"),
encData: pvtsutils.Convert.FromHex("b9ef20e7db926490e4ff8680d99d2141"),
key: {
format: "raw",
algorithm: { name: "DES-EDE3-CBC" },
extractable: true,
keyUsages: ["encrypt", "decrypt"],
data: pvtsutils.Convert.FromUtf8String("1234567890abcdef12345678"),
},
},
],
import: [
{
name: "raw",
format: "raw",
data: pvtsutils.Convert.FromUtf8String("1234567890abcdef12345678"),
algorithm: "DES-EDE3-CBC",
extractable: true,
keyUsages: ["encrypt", "decrypt", "wrapKey", "unwrapKey"],
},
{
name: "wrong key size",
error: true,
format: "raw",
data: pvtsutils.Convert.FromUtf8String("12345678"),
algorithm: "DES-EDE3-CBC",
extractable: true,
keyUsages: ["encrypt", "decrypt", "wrapKey", "unwrapKey"],
},
{
name: "jwk",
format: "jwk",
data: {
kty: "oct",
alg: "3DES-CBC",
k: "MTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4",
ext: true,
key_ops: ["encrypt", "decrypt", "wrapKey", "unwrapKey"],
},
algorithm: "DES-EDE3-CBC",
extractable: true,
keyUsages: ["encrypt", "decrypt", "wrapKey", "unwrapKey"],
},
],
},
},
]);
});