UNPKG

@microsoft/useragent-sdk

Version:

SDK for building decentralized identity wallets and enterprise agents.

42 lines (37 loc) 2.19 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import CryptoFactory from '../../../src/crypto/plugin/CryptoFactory'; import KeyStoreInMemory from '../../../src/crypto/keyStore/KeyStoreInMemory'; import { SubtleCryptoNode } from '../../../src'; import { SubtleCrypto } from 'webcrypto-core'; import { SubtleCryptoElliptic } from '@microsoft/useragent-plugin-secp256k1'; import CryptoFactoryNode from '../../../src/crypto/plugin/CryptoFactoryNode'; describe('CryptoFactory', () => { it('should create a crypto suite',() => { const keyStore = new KeyStoreInMemory(); const factory = new CryptoFactory(keyStore, SubtleCryptoNode.getSubtleCrypto()); expect(factory).toBeDefined(); const keyEncrypter = factory.getKeyEncrypter('*'); expect(keyEncrypter).toBeDefined(); const macSigner = factory.getMessageAuthenticationCodeSigners('*'); expect(macSigner).toBeDefined(); const messageDigest = factory.getMessageDigest('*'); expect(messageDigest).toBeDefined(); const messageSigner = factory.getMessageSigner('*'); expect(messageSigner).toBeDefined(); const sharedKeyEncrypter = factory.getSharedKeyEncrypter('*'); expect(sharedKeyEncrypter).toBeDefined(); const symmetricEncrypter = factory.getSymmetricEncrypter('*'); expect(symmetricEncrypter).toBeDefined(); }) it('should plugin a new algorithm into crypto suite',() => { const keyStore = new KeyStoreInMemory(); const factory = new CryptoFactoryNode(keyStore, SubtleCryptoNode.getSubtleCrypto()); const messageSigner = factory.getMessageSigner('ed25519'); expect(messageSigner instanceof SubtleCryptoElliptic).toBeTruthy(); expect((<any>messageSigner).providers.algorithms.includes('EDDSA')).toBeTruthy(); expect((<any>messageSigner).providers.algorithms.includes('ECDSA')).toBeTruthy(); }) });