mirror of
https://github.com/bitwarden/browser.git
synced 2024-11-09 09:51:02 +01:00
70 lines
2.0 KiB
TypeScript
70 lines
2.0 KiB
TypeScript
|
import { EncryptionType } from "jslib-common/enums/encryptionType";
|
||
|
import { SymmetricCryptoKey } from "jslib-common/models/domain/symmetricCryptoKey";
|
||
|
|
||
|
import { makeStaticByteArray } from "../utils";
|
||
|
|
||
|
describe("SymmetricCryptoKey", () => {
|
||
|
it("errors if no key", () => {
|
||
|
const t = () => {
|
||
|
new SymmetricCryptoKey(null);
|
||
|
};
|
||
|
|
||
|
expect(t).toThrowError("Must provide key");
|
||
|
});
|
||
|
|
||
|
describe("guesses encKey from key length", () => {
|
||
|
it("AesCbc256_B64", () => {
|
||
|
const key = makeStaticByteArray(32);
|
||
|
const cryptoKey = new SymmetricCryptoKey(key);
|
||
|
|
||
|
expect(cryptoKey).toEqual({
|
||
|
encKey: key,
|
||
|
encKeyB64: "AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8=",
|
||
|
encType: 0,
|
||
|
key: key,
|
||
|
keyB64: "AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8=",
|
||
|
macKey: null,
|
||
|
});
|
||
|
});
|
||
|
|
||
|
it("AesCbc128_HmacSha256_B64", () => {
|
||
|
const key = makeStaticByteArray(32);
|
||
|
const cryptoKey = new SymmetricCryptoKey(key, EncryptionType.AesCbc128_HmacSha256_B64);
|
||
|
|
||
|
expect(cryptoKey).toEqual({
|
||
|
encKey: key.slice(0, 16),
|
||
|
encKeyB64: "AAECAwQFBgcICQoLDA0ODw==",
|
||
|
encType: 1,
|
||
|
key: key,
|
||
|
keyB64: "AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8=",
|
||
|
macKey: key.slice(16, 32),
|
||
|
macKeyB64: "EBESExQVFhcYGRobHB0eHw==",
|
||
|
});
|
||
|
});
|
||
|
|
||
|
it("AesCbc256_HmacSha256_B64", () => {
|
||
|
const key = makeStaticByteArray(64);
|
||
|
const cryptoKey = new SymmetricCryptoKey(key);
|
||
|
|
||
|
expect(cryptoKey).toEqual({
|
||
|
encKey: key.slice(0, 32),
|
||
|
encKeyB64: "AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8=",
|
||
|
encType: 2,
|
||
|
key: key,
|
||
|
keyB64:
|
||
|
"AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+Pw==",
|
||
|
macKey: key.slice(32, 64),
|
||
|
macKeyB64: "ICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj8=",
|
||
|
});
|
||
|
});
|
||
|
|
||
|
it("unknown length", () => {
|
||
|
const t = () => {
|
||
|
new SymmetricCryptoKey(makeStaticByteArray(30));
|
||
|
};
|
||
|
|
||
|
expect(t).toThrowError("Unable to determine encType.");
|
||
|
});
|
||
|
});
|
||
|
});
|