@sudoplatform/sudo-common 7.0.2 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/configurationManager/defaultConfigurationManager.d.ts +123 -0
- package/cjs/configurationManager/defaultConfigurationManager.js +122 -0
- package/cjs/configurationManager/defaultConfigurationManager.js.map +1 -0
- package/cjs/errors/error.d.ts +263 -0
- package/cjs/errors/error.js +442 -0
- package/cjs/errors/error.js.map +1 -0
- package/cjs/index.d.ts +9 -0
- package/cjs/index.js +13 -0
- package/cjs/index.js.map +1 -0
- package/cjs/logging/bunyanLogger.d.ts +8 -0
- package/cjs/logging/bunyanLogger.js +36 -0
- package/cjs/logging/bunyanLogger.js.map +1 -0
- package/cjs/logging/logger.d.ts +87 -0
- package/cjs/logging/logger.js +77 -0
- package/cjs/logging/logger.js.map +1 -0
- package/cjs/sudoKeyArchive/index.d.ts +4 -0
- package/cjs/sudoKeyArchive/index.js +8 -0
- package/cjs/sudoKeyArchive/index.js.map +1 -0
- package/cjs/sudoKeyArchive/keyArchive.d.ts +137 -0
- package/cjs/sudoKeyArchive/keyArchive.js +84 -0
- package/cjs/sudoKeyArchive/keyArchive.js.map +1 -0
- package/cjs/sudoKeyArchive/keyInfo.d.ts +41 -0
- package/cjs/sudoKeyArchive/keyInfo.js +17 -0
- package/cjs/sudoKeyArchive/keyInfo.js.map +1 -0
- package/cjs/sudoKeyArchive/keyType.d.ts +13 -0
- package/cjs/sudoKeyArchive/keyType.js +39 -0
- package/cjs/sudoKeyArchive/keyType.js.map +1 -0
- package/cjs/sudoKeyArchive/sudoKeyArchive.d.ts +190 -0
- package/cjs/sudoKeyArchive/sudoKeyArchive.js +373 -0
- package/cjs/sudoKeyArchive/sudoKeyArchive.js.map +1 -0
- package/cjs/sudoKeyManager/index.d.ts +4 -0
- package/cjs/sudoKeyManager/index.js +8 -0
- package/cjs/sudoKeyManager/index.js.map +1 -0
- package/cjs/sudoKeyManager/keyData.d.ts +56 -0
- package/cjs/sudoKeyManager/keyData.js +46 -0
- package/cjs/sudoKeyManager/keyData.js.map +1 -0
- package/cjs/sudoKeyManager/publicKey.d.ts +8 -0
- package/cjs/sudoKeyManager/publicKey.js +9 -0
- package/cjs/sudoKeyManager/publicKey.js.map +1 -0
- package/cjs/sudoKeyManager/sudoCryptoProvider.d.ts +324 -0
- package/cjs/sudoKeyManager/sudoCryptoProvider.js +12 -0
- package/cjs/sudoKeyManager/sudoCryptoProvider.js.map +1 -0
- package/cjs/sudoKeyManager/sudoKeyManager.d.ts +344 -0
- package/cjs/sudoKeyManager/sudoKeyManager.js +140 -0
- package/cjs/sudoKeyManager/sudoKeyManager.js.map +1 -0
- package/cjs/types/types.d.ts +115 -0
- package/cjs/types/types.js +45 -0
- package/cjs/types/types.js.map +1 -0
- package/cjs/utils/base64.d.ts +44 -0
- package/cjs/utils/base64.js +71 -0
- package/cjs/utils/base64.js.map +1 -0
- package/cjs/utils/buffer.d.ts +13 -0
- package/cjs/utils/buffer.js +37 -0
- package/cjs/utils/buffer.js.map +1 -0
- package/cjs/utils/stream.d.ts +6 -0
- package/cjs/utils/stream.js +70 -0
- package/cjs/utils/stream.js.map +1 -0
- package/lib/configurationManager/defaultConfigurationManager.js +106 -158
- package/lib/configurationManager/defaultConfigurationManager.js.map +1 -0
- package/lib/errors/error.js +226 -438
- package/lib/errors/error.js.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +10 -109
- package/lib/index.js.map +1 -0
- package/lib/logging/bunyanLogger.js +29 -41
- package/lib/logging/bunyanLogger.js.map +1 -0
- package/lib/logging/logger.js +66 -92
- package/lib/logging/logger.js.map +1 -0
- package/lib/sudoKeyArchive/index.js +5 -57
- package/lib/sudoKeyArchive/index.js.map +1 -0
- package/lib/sudoKeyArchive/keyArchive.d.ts +8 -8
- package/lib/sudoKeyArchive/keyArchive.js +69 -96
- package/lib/sudoKeyArchive/keyArchive.js.map +1 -0
- package/lib/sudoKeyArchive/keyInfo.js +11 -49
- package/lib/sudoKeyArchive/keyInfo.js.map +1 -0
- package/lib/sudoKeyArchive/keyType.js +27 -37
- package/lib/sudoKeyArchive/keyType.js.map +1 -0
- package/lib/sudoKeyArchive/sudoKeyArchive.js +351 -444
- package/lib/sudoKeyArchive/sudoKeyArchive.js.map +1 -0
- package/lib/sudoKeyManager/index.js +5 -57
- package/lib/sudoKeyManager/index.js.map +1 -0
- package/lib/sudoKeyManager/keyData.js +38 -33
- package/lib/sudoKeyManager/keyData.js.map +1 -0
- package/lib/sudoKeyManager/publicKey.js +5 -12
- package/lib/sudoKeyManager/publicKey.js.map +1 -0
- package/lib/sudoKeyManager/sudoCryptoProvider.js +8 -26
- package/lib/sudoKeyManager/sudoCryptoProvider.js.map +1 -0
- package/lib/sudoKeyManager/sudoKeyManager.js +135 -173
- package/lib/sudoKeyManager/sudoKeyManager.js.map +1 -0
- package/lib/types/types.js +27 -33
- package/lib/types/types.js.map +1 -0
- package/lib/utils/base64.d.ts +35 -0
- package/lib/utils/base64.js +63 -28
- package/lib/utils/base64.js.map +1 -0
- package/lib/utils/buffer.js +28 -46
- package/lib/utils/buffer.js.map +1 -0
- package/lib/utils/stream.d.ts +6 -0
- package/lib/utils/stream.js +63 -0
- package/lib/utils/stream.js.map +1 -0
- package/package.json +36 -29
- package/.babelrc +0 -10
- package/.eslintrc.js +0 -91
- package/.gitignore +0 -14
- package/.gitlab-ci.yml +0 -101
- package/.npmignore +0 -1
- package/.prettierignore +0 -3
- package/.prettierrc.js +0 -7
- package/.publisher.json +0 -7
- package/.vscode/settings.json +0 -5
- package/.yarn/releases/yarn-1.22.19.cjs +0 -147529
- package/.yarnrc +0 -5
- package/dependencies-report.json +0 -640
- package/docs/.nojekyll +0 -1
- package/docs/assets/highlight.css +0 -57
- package/docs/assets/main.js +0 -54
- package/docs/assets/search.js +0 -1
- package/docs/assets/style.css +0 -1224
- package/docs/assets/widgets.png +0 -0
- package/docs/assets/widgets@2x.png +0 -0
- package/docs/classes/AccountLockedError.html +0 -163
- package/docs/classes/AuthenticationError.html +0 -169
- package/docs/classes/Base64.html +0 -134
- package/docs/classes/Buffer.html +0 -158
- package/docs/classes/ConfigurationNotSetError.html +0 -164
- package/docs/classes/ConfigurationSetNotFoundError.html +0 -168
- package/docs/classes/DecodeError.html +0 -168
- package/docs/classes/DefaultConfigurationManager.html +0 -213
- package/docs/classes/DefaultLogger.html +0 -291
- package/docs/classes/DefaultSudoKeyArchive.html +0 -363
- package/docs/classes/DefaultSudoKeyManager.html +0 -814
- package/docs/classes/FatalError.html +0 -169
- package/docs/classes/IllegalArgumentError.html +0 -168
- package/docs/classes/IllegalStateError.html +0 -169
- package/docs/classes/InsufficientEntitlementsError.html +0 -164
- package/docs/classes/InvalidOwnershipProofError.html +0 -163
- package/docs/classes/InvalidTokenError.html +0 -163
- package/docs/classes/KeyArchiveDecodingError.html +0 -168
- package/docs/classes/KeyArchiveIncorrectPasswordError.html +0 -168
- package/docs/classes/KeyArchiveMissingError.html +0 -168
- package/docs/classes/KeyArchiveNoPasswordRequiredError.html +0 -168
- package/docs/classes/KeyArchivePasswordRequiredError.html +0 -168
- package/docs/classes/KeyArchiveTypeError.html +0 -168
- package/docs/classes/KeyArchiveUnknownKeyTypeError.html +0 -168
- package/docs/classes/KeyArchiveVersionError.html +0 -168
- package/docs/classes/KeyNotFoundError.html +0 -168
- package/docs/classes/KeyStoreNotExportableError.html +0 -168
- package/docs/classes/LimitExceededError.html +0 -164
- package/docs/classes/NoEntitlementsError.html +0 -163
- package/docs/classes/NotAuthorizedError.html +0 -169
- package/docs/classes/NotRegisteredError.html +0 -168
- package/docs/classes/NotSignedInError.html +0 -164
- package/docs/classes/OperationNotImplementedError.html +0 -168
- package/docs/classes/RegisterError.html +0 -169
- package/docs/classes/RequestFailedError.html +0 -189
- package/docs/classes/ServiceError.html +0 -170
- package/docs/classes/SignOutError.html +0 -168
- package/docs/classes/SudoCryptoProviderDefaults.html +0 -106
- package/docs/classes/UnknownGraphQLError.html +0 -169
- package/docs/classes/UnrecognizedAlgorithmError.html +0 -168
- package/docs/classes/UserNotConfirmedError.html +0 -164
- package/docs/classes/VersionMismatchError.html +0 -166
- package/docs/enums/CachePolicy.html +0 -72
- package/docs/enums/EncryptionAlgorithm.html +0 -80
- package/docs/enums/KeyArchiveKeyType.html +0 -86
- package/docs/enums/KeyDataKeyFormat.html +0 -92
- package/docs/enums/KeyDataKeyType.html +0 -85
- package/docs/enums/ListOperationResultStatus.html +0 -85
- package/docs/enums/PublicKeyFormat.html +0 -68
- package/docs/functions/isAppSyncNetworkError.html +0 -147
- package/docs/functions/isInsecureKeyArchive.html +0 -147
- package/docs/functions/isSecureKeyArchive.html +0 -147
- package/docs/functions/isUnrecognizedKeyArchive.html +0 -147
- package/docs/functions/keyArchiveInfoFromKeyData.html +0 -147
- package/docs/functions/keyArchiveKeyTypeFromKeyDataKeyType.html +0 -147
- package/docs/functions/mapGraphQLToClientError.html +0 -154
- package/docs/functions/mapNetworkErrorToClientError.html +0 -154
- package/docs/index.html +0 -146
- package/docs/interfaces/AsymmetricEncryptionOptions.html +0 -68
- package/docs/interfaces/BooleanFilter.html +0 -75
- package/docs/interfaces/ConfigurationManager.html +0 -200
- package/docs/interfaces/KeyData.html +0 -106
- package/docs/interfaces/ListOperationFailureResult.html +0 -76
- package/docs/interfaces/ListOperationPartialResult.html +0 -102
- package/docs/interfaces/ListOperationSuccessResult.html +0 -90
- package/docs/interfaces/ListOutput.html +0 -80
- package/docs/interfaces/Logger.html +0 -251
- package/docs/interfaces/Owner.html +0 -72
- package/docs/interfaces/PublicKey.html +0 -72
- package/docs/interfaces/ServiceCompatibilityInfo.html +0 -110
- package/docs/interfaces/StringFilter.html +0 -82
- package/docs/interfaces/SudoCryptoProvider.html +0 -865
- package/docs/interfaces/SudoKeyArchive.html +0 -257
- package/docs/interfaces/SudoKeyManager.html +0 -848
- package/docs/interfaces/SymmetricEncryptionOptions.html +0 -75
- package/docs/interfaces/ValidationResult.html +0 -83
- package/docs/modules.html +0 -248
- package/docs/types/AppSyncError.html +0 -138
- package/docs/types/AppSyncNetworkError.html +0 -138
- package/docs/types/InsecureKeyArchive.html +0 -138
- package/docs/types/KeyArchive.html +0 -138
- package/docs/types/KeyArchiveKeyInfo.html +0 -154
- package/docs/types/KeyArchiveKeyInfoDecoded.html +0 -138
- package/docs/types/ListOperationResult.html +0 -148
- package/docs/types/SecureKeyArchive.html +0 -138
- package/docs/types/Subset.html +0 -144
- package/docs/types/UnrecognizedKeyArchive.html +0 -138
- package/docs/variables/CURRENT_ARCHIVE_VERSION.html +0 -138
- package/docs/variables/InsecureKeyArchiveCodec.html +0 -138
- package/docs/variables/InsecureKeyArchiveType.html +0 -138
- package/docs/variables/KeyArchiveCodec.html +0 -138
- package/docs/variables/KeyArchiveKeyInfoArrayCodec.html +0 -138
- package/docs/variables/KeyArchiveKeyInfoCodec.html +0 -138
- package/docs/variables/KeyArchiveKeyTypeCodec.html +0 -138
- package/docs/variables/SecureKeyArchiveCodec.html +0 -138
- package/docs/variables/SecureKeyArchiveType.html +0 -138
- package/docs/variables/UnrecognizedKeyArchiveCodec.html +0 -138
- package/github/.babelrc +0 -10
- package/github/.eslintrc.js +0 -91
- package/github/.gitignore +0 -14
- package/github/.gitlab-ci.yml +0 -101
- package/github/.npmignore +0 -1
- package/github/.prettierignore +0 -3
- package/github/.prettierrc.js +0 -7
- package/github/.publisher.json +0 -7
- package/github/.vscode/settings.json +0 -5
- package/github/.yarn/releases/yarn-1.22.19.cjs +0 -147529
- package/github/.yarnrc +0 -5
- package/github/CHANGELOG.md +0 -51
- package/github/README.md +0 -8
- package/github/bin/outdated-with-suppression.sh +0 -203
- package/github/bin/suppress-audit.sh +0 -15
- package/github/bin/suppress-outdated.sh +0 -60
- package/github/bin/yarn-audit-with-suppression.sh +0 -19
- package/github/docs/.nojekyll +0 -1
- package/github/docs/assets/highlight.css +0 -57
- package/github/docs/assets/main.js +0 -54
- package/github/docs/assets/search.js +0 -1
- package/github/docs/assets/style.css +0 -1224
- package/github/docs/assets/widgets.png +0 -0
- package/github/docs/assets/widgets@2x.png +0 -0
- package/github/docs/classes/AccountLockedError.html +0 -163
- package/github/docs/classes/AuthenticationError.html +0 -169
- package/github/docs/classes/Base64.html +0 -134
- package/github/docs/classes/Buffer.html +0 -158
- package/github/docs/classes/ConfigurationNotSetError.html +0 -164
- package/github/docs/classes/ConfigurationSetNotFoundError.html +0 -168
- package/github/docs/classes/DecodeError.html +0 -168
- package/github/docs/classes/DefaultConfigurationManager.html +0 -213
- package/github/docs/classes/DefaultLogger.html +0 -291
- package/github/docs/classes/DefaultSudoKeyArchive.html +0 -363
- package/github/docs/classes/DefaultSudoKeyManager.html +0 -814
- package/github/docs/classes/FatalError.html +0 -169
- package/github/docs/classes/IllegalArgumentError.html +0 -168
- package/github/docs/classes/IllegalStateError.html +0 -169
- package/github/docs/classes/InsufficientEntitlementsError.html +0 -164
- package/github/docs/classes/InvalidOwnershipProofError.html +0 -163
- package/github/docs/classes/InvalidTokenError.html +0 -163
- package/github/docs/classes/KeyArchiveDecodingError.html +0 -168
- package/github/docs/classes/KeyArchiveIncorrectPasswordError.html +0 -168
- package/github/docs/classes/KeyArchiveMissingError.html +0 -168
- package/github/docs/classes/KeyArchiveNoPasswordRequiredError.html +0 -168
- package/github/docs/classes/KeyArchivePasswordRequiredError.html +0 -168
- package/github/docs/classes/KeyArchiveTypeError.html +0 -168
- package/github/docs/classes/KeyArchiveUnknownKeyTypeError.html +0 -168
- package/github/docs/classes/KeyArchiveVersionError.html +0 -168
- package/github/docs/classes/KeyNotFoundError.html +0 -168
- package/github/docs/classes/KeyStoreNotExportableError.html +0 -168
- package/github/docs/classes/LimitExceededError.html +0 -164
- package/github/docs/classes/NoEntitlementsError.html +0 -163
- package/github/docs/classes/NotAuthorizedError.html +0 -169
- package/github/docs/classes/NotRegisteredError.html +0 -168
- package/github/docs/classes/NotSignedInError.html +0 -164
- package/github/docs/classes/OperationNotImplementedError.html +0 -168
- package/github/docs/classes/RegisterError.html +0 -169
- package/github/docs/classes/RequestFailedError.html +0 -189
- package/github/docs/classes/ServiceError.html +0 -170
- package/github/docs/classes/SignOutError.html +0 -168
- package/github/docs/classes/SudoCryptoProviderDefaults.html +0 -106
- package/github/docs/classes/UnknownGraphQLError.html +0 -169
- package/github/docs/classes/UnrecognizedAlgorithmError.html +0 -168
- package/github/docs/classes/UserNotConfirmedError.html +0 -164
- package/github/docs/classes/VersionMismatchError.html +0 -166
- package/github/docs/enums/CachePolicy.html +0 -72
- package/github/docs/enums/EncryptionAlgorithm.html +0 -80
- package/github/docs/enums/KeyArchiveKeyType.html +0 -86
- package/github/docs/enums/KeyDataKeyFormat.html +0 -92
- package/github/docs/enums/KeyDataKeyType.html +0 -85
- package/github/docs/enums/ListOperationResultStatus.html +0 -85
- package/github/docs/enums/PublicKeyFormat.html +0 -68
- package/github/docs/functions/isAppSyncNetworkError.html +0 -147
- package/github/docs/functions/isInsecureKeyArchive.html +0 -147
- package/github/docs/functions/isSecureKeyArchive.html +0 -147
- package/github/docs/functions/isUnrecognizedKeyArchive.html +0 -147
- package/github/docs/functions/keyArchiveInfoFromKeyData.html +0 -147
- package/github/docs/functions/keyArchiveKeyTypeFromKeyDataKeyType.html +0 -147
- package/github/docs/functions/mapGraphQLToClientError.html +0 -154
- package/github/docs/functions/mapNetworkErrorToClientError.html +0 -154
- package/github/docs/index.html +0 -146
- package/github/docs/interfaces/AsymmetricEncryptionOptions.html +0 -68
- package/github/docs/interfaces/BooleanFilter.html +0 -75
- package/github/docs/interfaces/ConfigurationManager.html +0 -200
- package/github/docs/interfaces/KeyData.html +0 -106
- package/github/docs/interfaces/ListOperationFailureResult.html +0 -76
- package/github/docs/interfaces/ListOperationPartialResult.html +0 -102
- package/github/docs/interfaces/ListOperationSuccessResult.html +0 -90
- package/github/docs/interfaces/ListOutput.html +0 -80
- package/github/docs/interfaces/Logger.html +0 -251
- package/github/docs/interfaces/Owner.html +0 -72
- package/github/docs/interfaces/PublicKey.html +0 -72
- package/github/docs/interfaces/ServiceCompatibilityInfo.html +0 -110
- package/github/docs/interfaces/StringFilter.html +0 -82
- package/github/docs/interfaces/SudoCryptoProvider.html +0 -865
- package/github/docs/interfaces/SudoKeyArchive.html +0 -257
- package/github/docs/interfaces/SudoKeyManager.html +0 -848
- package/github/docs/interfaces/SymmetricEncryptionOptions.html +0 -75
- package/github/docs/interfaces/ValidationResult.html +0 -83
- package/github/docs/modules.html +0 -248
- package/github/docs/types/AppSyncError.html +0 -138
- package/github/docs/types/AppSyncNetworkError.html +0 -138
- package/github/docs/types/InsecureKeyArchive.html +0 -138
- package/github/docs/types/KeyArchive.html +0 -138
- package/github/docs/types/KeyArchiveKeyInfo.html +0 -154
- package/github/docs/types/KeyArchiveKeyInfoDecoded.html +0 -138
- package/github/docs/types/ListOperationResult.html +0 -148
- package/github/docs/types/SecureKeyArchive.html +0 -138
- package/github/docs/types/Subset.html +0 -144
- package/github/docs/types/UnrecognizedKeyArchive.html +0 -138
- package/github/docs/variables/CURRENT_ARCHIVE_VERSION.html +0 -138
- package/github/docs/variables/InsecureKeyArchiveCodec.html +0 -138
- package/github/docs/variables/InsecureKeyArchiveType.html +0 -138
- package/github/docs/variables/KeyArchiveCodec.html +0 -138
- package/github/docs/variables/KeyArchiveKeyInfoArrayCodec.html +0 -138
- package/github/docs/variables/KeyArchiveKeyInfoCodec.html +0 -138
- package/github/docs/variables/KeyArchiveKeyTypeCodec.html +0 -138
- package/github/docs/variables/SecureKeyArchiveCodec.html +0 -138
- package/github/docs/variables/SecureKeyArchiveType.html +0 -138
- package/github/docs/variables/UnrecognizedKeyArchiveCodec.html +0 -138
- package/github/jest.config.json +0 -14
- package/github/package.json +0 -91
- package/github/src/configurationManager/defaultConfigurationManager.ts +0 -281
- package/github/src/errors/error.ts +0 -469
- package/github/src/index.ts +0 -8
- package/github/src/logging/bunyanLogger.ts +0 -47
- package/github/src/logging/logger.ts +0 -164
- package/github/src/sudoKeyArchive/index.ts +0 -4
- package/github/src/sudoKeyArchive/keyArchive.ts +0 -120
- package/github/src/sudoKeyArchive/keyInfo.ts +0 -47
- package/github/src/sudoKeyArchive/keyType.ts +0 -50
- package/github/src/sudoKeyArchive/sudoKeyArchive.ts +0 -591
- package/github/src/sudoKeyManager/index.ts +0 -4
- package/github/src/sudoKeyManager/keyData.ts +0 -60
- package/github/src/sudoKeyManager/publicKey.ts +0 -9
- package/github/src/sudoKeyManager/sudoCryptoProvider.ts +0 -416
- package/github/src/sudoKeyManager/sudoKeyManager.ts +0 -609
- package/github/src/types/types.ts +0 -129
- package/github/src/utils/base64.ts +0 -21
- package/github/src/utils/buffer.ts +0 -39
- package/github/test/integration/defaultConfigurationManager.spec.ts +0 -85
- package/github/test/matchers.ts +0 -122
- package/github/test/unit/configurationManager/defaultConfigurationManager.spec.ts +0 -506
- package/github/test/unit/errors/error.spec.ts +0 -115
- package/github/test/unit/keyType.spec.ts +0 -54
- package/github/test/unit/logging/logger.spec.ts +0 -182
- package/github/test/unit/sudoKeyArchive.spec.ts +0 -1609
- package/github/test/unit/sudoKeyManager.spec.ts +0 -1045
- package/github/test/unit/utils/base64.spec.ts +0 -30
- package/github/test/unit/utils/buffer.spec.ts +0 -45
- package/github/test/unit/utils/listOperationResult.spec.ts +0 -84
- package/github/tsconfig.json +0 -20
- package/github/tsconfig.test.json +0 -7
- package/github/yarn.lock +0 -5922
- package/jest.config.json +0 -14
- package/src/configurationManager/defaultConfigurationManager.ts +0 -281
- package/src/errors/error.ts +0 -469
- package/src/index.ts +0 -8
- package/src/logging/bunyanLogger.ts +0 -47
- package/src/logging/logger.ts +0 -164
- package/src/sudoKeyArchive/index.ts +0 -4
- package/src/sudoKeyArchive/keyArchive.ts +0 -120
- package/src/sudoKeyArchive/keyInfo.ts +0 -47
- package/src/sudoKeyArchive/keyType.ts +0 -50
- package/src/sudoKeyArchive/sudoKeyArchive.ts +0 -591
- package/src/sudoKeyManager/index.ts +0 -4
- package/src/sudoKeyManager/keyData.ts +0 -60
- package/src/sudoKeyManager/publicKey.ts +0 -9
- package/src/sudoKeyManager/sudoCryptoProvider.ts +0 -416
- package/src/sudoKeyManager/sudoKeyManager.ts +0 -609
- package/src/types/types.ts +0 -129
- package/src/utils/base64.ts +0 -21
- package/src/utils/buffer.ts +0 -39
- package/test/integration/defaultConfigurationManager.spec.ts +0 -85
- package/test/matchers.ts +0 -122
- package/test/unit/configurationManager/defaultConfigurationManager.spec.ts +0 -506
- package/test/unit/errors/error.spec.ts +0 -115
- package/test/unit/keyType.spec.ts +0 -54
- package/test/unit/logging/logger.spec.ts +0 -182
- package/test/unit/sudoKeyArchive.spec.ts +0 -1609
- package/test/unit/sudoKeyManager.spec.ts +0 -1045
- package/test/unit/utils/base64.spec.ts +0 -30
- package/test/unit/utils/buffer.spec.ts +0 -45
- package/test/unit/utils/listOperationResult.spec.ts +0 -84
- package/tsconfig.json +0 -20
- package/tsconfig.test.json +0 -7
- package/yarn.lock +0 -5922
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
import { EncryptionAlgorithm } from '../types/types';
|
|
2
|
+
import { KeyData } from './keyData';
|
|
3
|
+
import { PublicKey } from './publicKey';
|
|
4
|
+
export declare class SudoCryptoProviderDefaults {
|
|
5
|
+
static readonly aesIVSize = 16;
|
|
6
|
+
static readonly aesKeySize = 256;
|
|
7
|
+
static readonly rsaKeySize = 2048;
|
|
8
|
+
static readonly pbkdfRounds = 10000;
|
|
9
|
+
static readonly pbkdfSaltSize = 16;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Optional arguments for symmetric encryption..
|
|
13
|
+
*/
|
|
14
|
+
export interface SymmetricEncryptionOptions {
|
|
15
|
+
iv?: ArrayBuffer;
|
|
16
|
+
algorithm?: EncryptionAlgorithm;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Optional arguments for public key encryption.
|
|
20
|
+
*/
|
|
21
|
+
export interface AsymmetricEncryptionOptions {
|
|
22
|
+
algorithm?: EncryptionAlgorithm;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* CryptoProvider instance interface
|
|
26
|
+
*/
|
|
27
|
+
export interface SudoCryptoProvider {
|
|
28
|
+
getNamespace(): string;
|
|
29
|
+
getServiceName(): string;
|
|
30
|
+
/**
|
|
31
|
+
* Adds as password to the secure store.
|
|
32
|
+
*
|
|
33
|
+
* @param password The password to store.
|
|
34
|
+
* @param name The name of the password.
|
|
35
|
+
*/
|
|
36
|
+
addPassword(password: ArrayBuffer, name: string): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Retrieves a password from the secure store.
|
|
39
|
+
*
|
|
40
|
+
* @param name The name of the password to retrieve.
|
|
41
|
+
*
|
|
42
|
+
* @returns The password or undefined if a password with the given name was not found.
|
|
43
|
+
*/
|
|
44
|
+
getPassword(name: string): Promise<ArrayBuffer | undefined>;
|
|
45
|
+
/**
|
|
46
|
+
* Deletes a password from the secure store.
|
|
47
|
+
*
|
|
48
|
+
* @param name The name of the password to delete.
|
|
49
|
+
*/
|
|
50
|
+
deletePassword(name: string): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* Updates a password stored in the secure store.
|
|
53
|
+
*
|
|
54
|
+
* @param password The new password.
|
|
55
|
+
* @param name The name of the password to update.
|
|
56
|
+
*/
|
|
57
|
+
updatePassword(password: ArrayBuffer, name: string): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Adds a symmetric key to the secure store.
|
|
60
|
+
*
|
|
61
|
+
* @param key The symmetric key.
|
|
62
|
+
* @param name The name for the symmetric key.
|
|
63
|
+
*/
|
|
64
|
+
addSymmetricKey(key: ArrayBuffer, name: string): Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
* Retrieves a symmetric key from the secure store.
|
|
67
|
+
*
|
|
68
|
+
* @param name The name of the symmetric key.
|
|
69
|
+
*
|
|
70
|
+
* @returns The symmetric key or undefined if not found.
|
|
71
|
+
*/
|
|
72
|
+
getSymmetricKey(name: string): Promise<ArrayBuffer | undefined>;
|
|
73
|
+
/**
|
|
74
|
+
* Checks to see if the specified symmetric key exists.
|
|
75
|
+
*
|
|
76
|
+
* @param name The name of the symmetric key.
|
|
77
|
+
*/
|
|
78
|
+
doesSymmetricKeyExist(name: string): Promise<boolean>;
|
|
79
|
+
/**
|
|
80
|
+
* Deletes a symmetric key from the secure store.
|
|
81
|
+
*
|
|
82
|
+
* @param name The name of the symmetric key.
|
|
83
|
+
*/
|
|
84
|
+
deleteSymmetricKey(name: string): Promise<void>;
|
|
85
|
+
/**
|
|
86
|
+
* Generates a symmetric key and stores it securely.
|
|
87
|
+
*
|
|
88
|
+
* @param name The name for the symmetric key.
|
|
89
|
+
*/
|
|
90
|
+
generateSymmetricKey(name: string): Promise<void>;
|
|
91
|
+
/**
|
|
92
|
+
* Generates a symmetric key from a password using PBKDF2.
|
|
93
|
+
*
|
|
94
|
+
* @param password The password from which to generate the symmetric key
|
|
95
|
+
* @param salt Salt to use in generation of the key
|
|
96
|
+
* @param rounds The number of rounds of PBKDF2 to perform. Default: per getDefaultPBKDF2Rounds
|
|
97
|
+
*
|
|
98
|
+
* @returns The generated symmetric key.
|
|
99
|
+
*/
|
|
100
|
+
generateSymmetricKeyFromPassword(password: ArrayBuffer, salt: ArrayBuffer, options?: {
|
|
101
|
+
rounds?: number;
|
|
102
|
+
}): Promise<ArrayBuffer>;
|
|
103
|
+
/**
|
|
104
|
+
* Generate random bytes using a secure random number generator.
|
|
105
|
+
*
|
|
106
|
+
* @param size Number of random bytes to generate
|
|
107
|
+
*
|
|
108
|
+
* @returns ArrayBuffer containing the random bytes.
|
|
109
|
+
*/
|
|
110
|
+
generateRandomData(size: number): Promise<ArrayBuffer>;
|
|
111
|
+
/**
|
|
112
|
+
* Deletes a key pair from the secure store.
|
|
113
|
+
*
|
|
114
|
+
* @param name The name of the key pair to be deleted.
|
|
115
|
+
*/
|
|
116
|
+
deleteKeyPair(name: string): Promise<void>;
|
|
117
|
+
/**
|
|
118
|
+
* Generates a signature for the given data with the specified private key.
|
|
119
|
+
*
|
|
120
|
+
* @param name The name of the private key to use for generation.
|
|
121
|
+
* @param data The data to sign.
|
|
122
|
+
*
|
|
123
|
+
* @returns Data signature
|
|
124
|
+
*
|
|
125
|
+
* @throws {@link KeyNotFoundError}
|
|
126
|
+
*/
|
|
127
|
+
generateSignatureWithPrivateKey(name: string, data: ArrayBuffer): Promise<ArrayBuffer>;
|
|
128
|
+
/**
|
|
129
|
+
* Verifies the given data against the provided signature using the specified public key.
|
|
130
|
+
*
|
|
131
|
+
* @param name The name of the public key to use for validation.
|
|
132
|
+
* @param data The data to verify
|
|
133
|
+
* @param signature The signature to verify against
|
|
134
|
+
*
|
|
135
|
+
* @returns True if the data and signature could be successfully verified
|
|
136
|
+
*/
|
|
137
|
+
verifySignatureWithPublicKey(name: string, data: ArrayBuffer, signature: ArrayBuffer): Promise<boolean>;
|
|
138
|
+
/**
|
|
139
|
+
* Adds a private key to the secure store.
|
|
140
|
+
*
|
|
141
|
+
* @param key The private key to store securely.
|
|
142
|
+
* @param name The name of the private key to be stored.
|
|
143
|
+
*/
|
|
144
|
+
addPrivateKey(key: ArrayBuffer, name: string): Promise<void>;
|
|
145
|
+
/**
|
|
146
|
+
* Retrieves a private key from the secure store.
|
|
147
|
+
*
|
|
148
|
+
* @param name The name of the private key to be retrieved.
|
|
149
|
+
*
|
|
150
|
+
* @returns Requested private key or undefined if the key was not found.
|
|
151
|
+
*/
|
|
152
|
+
getPrivateKey(name: string): Promise<ArrayBuffer | undefined>;
|
|
153
|
+
/**
|
|
154
|
+
* Checks to see if the specified private key exists.
|
|
155
|
+
*
|
|
156
|
+
* @param name The name of the private key.
|
|
157
|
+
*/
|
|
158
|
+
doesPrivateKeyExist(name: string): Promise<boolean>;
|
|
159
|
+
/**
|
|
160
|
+
* Adds a public key to the secure store.
|
|
161
|
+
*
|
|
162
|
+
* @param key The public key to store securely.
|
|
163
|
+
* @param name The name of the public key to be stored.
|
|
164
|
+
*/
|
|
165
|
+
addPublicKey(key: ArrayBuffer, name: string): Promise<void>;
|
|
166
|
+
/**
|
|
167
|
+
* Deletes the specified public key from the secure store.
|
|
168
|
+
*
|
|
169
|
+
* @param name The name of the public key to be removed.
|
|
170
|
+
*/
|
|
171
|
+
deletePublicKey(name: string): Promise<void>;
|
|
172
|
+
/**
|
|
173
|
+
* Retrieves the public key from the secure store.
|
|
174
|
+
*
|
|
175
|
+
* @param name The name of the public key.
|
|
176
|
+
*
|
|
177
|
+
* @returns The public key or undefined if the key was not found.
|
|
178
|
+
*/
|
|
179
|
+
getPublicKey(name: string): Promise<PublicKey | undefined>;
|
|
180
|
+
/**
|
|
181
|
+
* Clear all types of keys
|
|
182
|
+
*/
|
|
183
|
+
removeAllKeys(): Promise<void>;
|
|
184
|
+
/**
|
|
185
|
+
* @deprecated Use version with `options` param.
|
|
186
|
+
*
|
|
187
|
+
* Encrypts the given data with the specified symmetric key stored in the secure store.
|
|
188
|
+
*
|
|
189
|
+
* @param name The name of the symmetric key to use to encrypt.
|
|
190
|
+
* @param data Data to encrypt.
|
|
191
|
+
* @param iv Optional Initialization Vector.
|
|
192
|
+
*
|
|
193
|
+
* @returns Encrypted data and IV
|
|
194
|
+
*/
|
|
195
|
+
encryptWithSymmetricKeyName(name: string, data: ArrayBuffer, iv?: ArrayBuffer): Promise<ArrayBuffer>;
|
|
196
|
+
/**
|
|
197
|
+
* Encrypts the given data with the specified symmetric key stored in the secure store.
|
|
198
|
+
*
|
|
199
|
+
* @param name The name of the symmetric key to use to encrypt.
|
|
200
|
+
* @param data Data to encrypt.
|
|
201
|
+
*
|
|
202
|
+
*
|
|
203
|
+
* @returns Encrypted data and IV
|
|
204
|
+
*
|
|
205
|
+
* @throws {@link UnrecognizedAlgorithmError}
|
|
206
|
+
* @throws {@link KeyNotFoundError}
|
|
207
|
+
*/
|
|
208
|
+
encryptWithSymmetricKeyName(name: string, data: ArrayBuffer, options?: SymmetricEncryptionOptions): Promise<ArrayBuffer>;
|
|
209
|
+
/**
|
|
210
|
+
* @deprecated Use version with `options` param.
|
|
211
|
+
*
|
|
212
|
+
* Decrypt the given data with the specified symmetric key stored in the secure store.
|
|
213
|
+
*
|
|
214
|
+
* @param name The name of the symmetric key to use to decrypt.
|
|
215
|
+
* @param data The data to decrypt.
|
|
216
|
+
* @param iv Optional Initialization Vector.
|
|
217
|
+
*
|
|
218
|
+
* @returns Decrypted data
|
|
219
|
+
*/
|
|
220
|
+
decryptWithSymmetricKeyName(name: string, data: ArrayBuffer, iv?: ArrayBuffer): Promise<ArrayBuffer>;
|
|
221
|
+
/**
|
|
222
|
+
* Decrypt the given data with the specified symmetric key stored in the secure store.
|
|
223
|
+
*
|
|
224
|
+
* @param name The name of the symmetric key to use to decrypt.
|
|
225
|
+
* @param data The data to decrypt.
|
|
226
|
+
*
|
|
227
|
+
* @returns Decrypted data
|
|
228
|
+
*
|
|
229
|
+
* @throws {@link UnrecognizedAlgorithmError}
|
|
230
|
+
* @throws {@link KeyNotFoundError}
|
|
231
|
+
*/
|
|
232
|
+
decryptWithSymmetricKeyName(name: string, data: ArrayBuffer, options?: SymmetricEncryptionOptions): Promise<ArrayBuffer>;
|
|
233
|
+
/**
|
|
234
|
+
* @deprecated Use version with `options` param.
|
|
235
|
+
*
|
|
236
|
+
* Encrypts the given data with the specified key
|
|
237
|
+
*
|
|
238
|
+
* @param name The name of the symmetric key to use to encrypt.
|
|
239
|
+
* @param data Data to encrypt.
|
|
240
|
+
* @param iv Optional Initialization Vector.
|
|
241
|
+
*
|
|
242
|
+
* @returns Encrypted data and IV
|
|
243
|
+
*/
|
|
244
|
+
encryptWithSymmetricKey(key: ArrayBuffer, data: ArrayBuffer, iv?: ArrayBuffer): Promise<ArrayBuffer>;
|
|
245
|
+
/**
|
|
246
|
+
* Encrypts the given data with the specified key
|
|
247
|
+
*
|
|
248
|
+
* @param name The name of the symmetric key to use to encrypt.
|
|
249
|
+
* @param data Data to encrypt.
|
|
250
|
+
*
|
|
251
|
+
* @returns Encrypted data and IV
|
|
252
|
+
*
|
|
253
|
+
* @throws {@link UnrecognizedAlgorithmError}
|
|
254
|
+
*/
|
|
255
|
+
encryptWithSymmetricKey(key: ArrayBuffer, data: ArrayBuffer, options?: SymmetricEncryptionOptions): Promise<ArrayBuffer>;
|
|
256
|
+
/**
|
|
257
|
+
* @deprecated Use version with `options` param.
|
|
258
|
+
*
|
|
259
|
+
* Decrypt the given data with the specified symmetric key stored in the secure store.
|
|
260
|
+
*
|
|
261
|
+
* @param name The name of the symmetric key to use to decrypt.
|
|
262
|
+
* @param data The data to decrypt.
|
|
263
|
+
* @param iv Optional Initialization Vector.
|
|
264
|
+
*
|
|
265
|
+
* @returns Decrypted data
|
|
266
|
+
*/
|
|
267
|
+
decryptWithSymmetricKey(key: ArrayBuffer, data: ArrayBuffer, iv?: ArrayBuffer): Promise<ArrayBuffer>;
|
|
268
|
+
/**
|
|
269
|
+
* Decrypt the given data with the specified symmetric key stored in the secure store.
|
|
270
|
+
*
|
|
271
|
+
* @param name The name of the symmetric key to use to decrypt.
|
|
272
|
+
* @param data The data to decrypt.
|
|
273
|
+
*
|
|
274
|
+
* @returns Decrypted data
|
|
275
|
+
*
|
|
276
|
+
* @throws {@link UnrecognizedAlgorithmError}
|
|
277
|
+
*/
|
|
278
|
+
decryptWithSymmetricKey(key: ArrayBuffer, data: ArrayBuffer, options?: SymmetricEncryptionOptions): Promise<ArrayBuffer>;
|
|
279
|
+
/**
|
|
280
|
+
* Encrypts the given data with the specified public key.
|
|
281
|
+
*
|
|
282
|
+
* @param name The name of the public key to use for encryption.
|
|
283
|
+
* @param data The data to encrypt.
|
|
284
|
+
*
|
|
285
|
+
* @returns Encrypted data
|
|
286
|
+
*
|
|
287
|
+
* @throws {@link UnrecognizedAlgorithmError}
|
|
288
|
+
* @throws {@link KeyNotFoundError}
|
|
289
|
+
*/
|
|
290
|
+
encryptWithPublicKey(name: string, data: ArrayBuffer, options?: AsymmetricEncryptionOptions): Promise<ArrayBuffer>;
|
|
291
|
+
/**
|
|
292
|
+
* Decrypts the given data with the specified private key.
|
|
293
|
+
*
|
|
294
|
+
* @param name The name of the private key to use for decryption.
|
|
295
|
+
* @param data The data to decrypt.
|
|
296
|
+
*
|
|
297
|
+
* @returns Decrypted data.
|
|
298
|
+
*
|
|
299
|
+
* @throws {@link UnrecognizedAlgorithmError}
|
|
300
|
+
* @throws {@link KeyNotFoundError}
|
|
301
|
+
*/
|
|
302
|
+
decryptWithPrivateKey(name: string, data: ArrayBuffer, options?: AsymmetricEncryptionOptions): Promise<ArrayBuffer>;
|
|
303
|
+
/**
|
|
304
|
+
* Generates and securely stores a key pair for public key cryptography.
|
|
305
|
+
*
|
|
306
|
+
* @param name The name of the key pair to be generated.
|
|
307
|
+
*/
|
|
308
|
+
generateKeyPair(name: string): Promise<void>;
|
|
309
|
+
/**
|
|
310
|
+
* Creates a SHA256 hash of the specified data.
|
|
311
|
+
*
|
|
312
|
+
* @param data Data to hash.
|
|
313
|
+
*
|
|
314
|
+
* @returns The SHA256 hash of data
|
|
315
|
+
*/
|
|
316
|
+
generateHash(data: ArrayBuffer): Promise<ArrayBuffer>;
|
|
317
|
+
/**
|
|
318
|
+
* Export all keys and passwords from the key store as an
|
|
319
|
+
* array of KeyData items.
|
|
320
|
+
*
|
|
321
|
+
* @returns Array of exported keys and passwords
|
|
322
|
+
*/
|
|
323
|
+
exportKeys(): Promise<KeyData[]>;
|
|
324
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SudoCryptoProviderDefaults = void 0;
|
|
4
|
+
class SudoCryptoProviderDefaults {
|
|
5
|
+
}
|
|
6
|
+
exports.SudoCryptoProviderDefaults = SudoCryptoProviderDefaults;
|
|
7
|
+
SudoCryptoProviderDefaults.aesIVSize = 16;
|
|
8
|
+
SudoCryptoProviderDefaults.aesKeySize = 256;
|
|
9
|
+
SudoCryptoProviderDefaults.rsaKeySize = 2048;
|
|
10
|
+
SudoCryptoProviderDefaults.pbkdfRounds = 10000;
|
|
11
|
+
SudoCryptoProviderDefaults.pbkdfSaltSize = 16;
|
|
12
|
+
//# sourceMappingURL=sudoCryptoProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sudoCryptoProvider.js","sourceRoot":"","sources":["../../src/sudoKeyManager/sudoCryptoProvider.ts"],"names":[],"mappings":";;;AAIA,MAAa,0BAA0B;;AAAvC,gEAMC;AALwB,oCAAS,GAAG,EAAE,CAAA;AACd,qCAAU,GAAG,GAAG,CAAA;AAChB,qCAAU,GAAG,IAAI,CAAA;AACjB,sCAAW,GAAG,KAAK,CAAA;AACnB,wCAAa,GAAG,EAAE,CAAA"}
|
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
import { KeyData } from './keyData';
|
|
2
|
+
import { PublicKey } from './publicKey';
|
|
3
|
+
import { AsymmetricEncryptionOptions, SudoCryptoProvider, SymmetricEncryptionOptions } from './sudoCryptoProvider';
|
|
4
|
+
/**
|
|
5
|
+
* Interface for a set of methods for securely storing keys and performing
|
|
6
|
+
* cryptographic operations.
|
|
7
|
+
*/
|
|
8
|
+
export interface SudoKeyManager {
|
|
9
|
+
readonly namespace: string;
|
|
10
|
+
readonly serviceName: string;
|
|
11
|
+
/**
|
|
12
|
+
* Adds as password to the secure store.
|
|
13
|
+
*
|
|
14
|
+
* @param password
|
|
15
|
+
* @param name
|
|
16
|
+
*/
|
|
17
|
+
addPassword(password: ArrayBuffer, name: string): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Retrieves a password from the secure store.
|
|
20
|
+
*
|
|
21
|
+
* @param name The name of the password to retrieve
|
|
22
|
+
*
|
|
23
|
+
* @returns The password or undefined if the password was not found.
|
|
24
|
+
*/
|
|
25
|
+
getPassword(name: string): Promise<ArrayBuffer | undefined>;
|
|
26
|
+
/**
|
|
27
|
+
* Deletes a password from the secure store.
|
|
28
|
+
*
|
|
29
|
+
* @param name
|
|
30
|
+
*/
|
|
31
|
+
deletePassword(name: string): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Updates a password stored in the secure store.
|
|
34
|
+
*
|
|
35
|
+
* @param password
|
|
36
|
+
* @param name
|
|
37
|
+
*/
|
|
38
|
+
updatePassword(password: ArrayBuffer, name: string): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Adds a symmetric key to the secure store.
|
|
41
|
+
*
|
|
42
|
+
* @param key The symmetric key.
|
|
43
|
+
* @param name The name for the symmetric key.
|
|
44
|
+
*/
|
|
45
|
+
addSymmetricKey(key: ArrayBuffer, name: string): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Retrieves a symmetric key from the secure store.
|
|
48
|
+
*
|
|
49
|
+
* @param name The name of the symmetric key.
|
|
50
|
+
*
|
|
51
|
+
* @returns The symmetric key or undefined if not found.
|
|
52
|
+
*/
|
|
53
|
+
getSymmetricKey(name: string): Promise<ArrayBuffer | undefined>;
|
|
54
|
+
/**
|
|
55
|
+
* Checks to see if the specified symmetric key exists.
|
|
56
|
+
*
|
|
57
|
+
* @param name The name of the symmetric key.
|
|
58
|
+
*/
|
|
59
|
+
doesSymmetricKeyExist(name: string): Promise<boolean>;
|
|
60
|
+
/**
|
|
61
|
+
* Deletes a symmetric key from the secure store.
|
|
62
|
+
*
|
|
63
|
+
* @param name The name of the symmetric key.
|
|
64
|
+
*/
|
|
65
|
+
deleteSymmetricKey(name: string): Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* Adds a private key to the secure store.
|
|
68
|
+
*
|
|
69
|
+
* @param key The private key to store securely.
|
|
70
|
+
* @param name The name of the private key to be stored.
|
|
71
|
+
*/
|
|
72
|
+
addPrivateKey(key: ArrayBuffer, name: string): Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* Retrieves a private key from the secure store.
|
|
75
|
+
*
|
|
76
|
+
* @param name The name of the private key to be retrieved.
|
|
77
|
+
*
|
|
78
|
+
* @returns Requested private key or undefined if the key was not found.
|
|
79
|
+
*/
|
|
80
|
+
getPrivateKey(name: string): Promise<ArrayBuffer | undefined>;
|
|
81
|
+
/**
|
|
82
|
+
* Checks to see if the specified private key exists.
|
|
83
|
+
*
|
|
84
|
+
* @param name The name of the private key.
|
|
85
|
+
*/
|
|
86
|
+
doesPrivateKeyExist(name: string): Promise<boolean>;
|
|
87
|
+
/**
|
|
88
|
+
* Adds a public key to the secure store.
|
|
89
|
+
*
|
|
90
|
+
* The format of the public key should be SubjectPublicKeyInfo (spki)
|
|
91
|
+
*
|
|
92
|
+
* @param key The public key to store securely.
|
|
93
|
+
* @param name The name of the public key to be stored.
|
|
94
|
+
*/
|
|
95
|
+
addPublicKey(key: ArrayBuffer, name: string): Promise<void>;
|
|
96
|
+
/**
|
|
97
|
+
* Deletes the specified public key from the secure store.
|
|
98
|
+
*
|
|
99
|
+
* @param name The name of the public key to be removed.
|
|
100
|
+
*/
|
|
101
|
+
deletePublicKey(name: string): Promise<void>;
|
|
102
|
+
/**
|
|
103
|
+
* Retrieves the public key from the secure store.
|
|
104
|
+
*
|
|
105
|
+
* The format of the public key is SubjectPublicKeyInfo (spki)
|
|
106
|
+
*
|
|
107
|
+
* @param name The name of the public key.
|
|
108
|
+
*
|
|
109
|
+
* @returns The public key or undefined if the key was not found.
|
|
110
|
+
*/
|
|
111
|
+
getPublicKey(name: string): Promise<PublicKey | undefined>;
|
|
112
|
+
/**
|
|
113
|
+
* Deletes a key pair from the secure store.
|
|
114
|
+
*
|
|
115
|
+
* @param name The name of the key pair to be deleted.
|
|
116
|
+
*/
|
|
117
|
+
deleteKeyPair(name: string): Promise<void>;
|
|
118
|
+
/**
|
|
119
|
+
* Generates a signature for the given data with the specified private key.
|
|
120
|
+
*
|
|
121
|
+
* @param name The name of the private key to use for generation.
|
|
122
|
+
* @param data The data to sign.
|
|
123
|
+
*
|
|
124
|
+
* @returns Data signature or undefined if the private key is not found.
|
|
125
|
+
*/
|
|
126
|
+
generateSignatureWithPrivateKey(name: string, data: ArrayBuffer): Promise<ArrayBuffer>;
|
|
127
|
+
/**
|
|
128
|
+
* Verifies the given data against the provided signature using the specified public key.
|
|
129
|
+
*
|
|
130
|
+
* @param name The name of the public key to use for validation.
|
|
131
|
+
* @param data The data to verify
|
|
132
|
+
* @param signature The signature to verify against
|
|
133
|
+
*
|
|
134
|
+
* @returns True if the data and signature could be successfully verified
|
|
135
|
+
*/
|
|
136
|
+
verifySignatureWithPublicKey(name: string, data: ArrayBuffer, signature: ArrayBuffer): Promise<boolean>;
|
|
137
|
+
/**
|
|
138
|
+
* @deprecated Use version with `options` param.
|
|
139
|
+
*
|
|
140
|
+
* Encrypts the given data with the specified key
|
|
141
|
+
*
|
|
142
|
+
* @param name The name of the symmetric key to use to encrypt.
|
|
143
|
+
* @param data Data to encrypt.
|
|
144
|
+
* @param iv Optional Initialization Vector.
|
|
145
|
+
*
|
|
146
|
+
* @returns Encrypted data and IV
|
|
147
|
+
*/
|
|
148
|
+
encryptWithSymmetricKey(key: ArrayBuffer, data: ArrayBuffer, iv?: ArrayBuffer): Promise<ArrayBuffer>;
|
|
149
|
+
/**
|
|
150
|
+
* Encrypts the given data with the specified key
|
|
151
|
+
*
|
|
152
|
+
* @param name The name of the symmetric key to use to encrypt.
|
|
153
|
+
* @param data Data to encrypt.
|
|
154
|
+
*
|
|
155
|
+
* @returns Encrypted data and IV
|
|
156
|
+
*
|
|
157
|
+
* @throws {@link UnrecognizedAlgorithmError}
|
|
158
|
+
*/
|
|
159
|
+
encryptWithSymmetricKey(key: ArrayBuffer, data: ArrayBuffer, options?: SymmetricEncryptionOptions): Promise<ArrayBuffer>;
|
|
160
|
+
/**
|
|
161
|
+
* @deprecated Use version with `options` param.
|
|
162
|
+
*
|
|
163
|
+
* Decrypt the given data with the given symmetric key
|
|
164
|
+
*
|
|
165
|
+
* @param key The symmetric key to use to decrypt the data.
|
|
166
|
+
* @param encryptedData The encrypted data.
|
|
167
|
+
* @param iv Optional Initialization Vector.
|
|
168
|
+
*
|
|
169
|
+
* @returns Decrypted data
|
|
170
|
+
*/
|
|
171
|
+
decryptWithSymmetricKey(key: ArrayBuffer, data: ArrayBuffer, iv?: ArrayBuffer): Promise<ArrayBuffer>;
|
|
172
|
+
/**
|
|
173
|
+
* Decrypt the given data with the given symmetric key
|
|
174
|
+
*
|
|
175
|
+
* @param key The symmetric key to use to decrypt the data.
|
|
176
|
+
* @param encryptedData The encrypted data.
|
|
177
|
+
*
|
|
178
|
+
* @returns Decrypted data
|
|
179
|
+
*
|
|
180
|
+
* @throws {@link UnrecognizedAlgorithmError}
|
|
181
|
+
*/
|
|
182
|
+
decryptWithSymmetricKey(key: ArrayBuffer, data: ArrayBuffer, options?: SymmetricEncryptionOptions): Promise<ArrayBuffer>;
|
|
183
|
+
/**
|
|
184
|
+
* @deprecated Use version with `options` param.
|
|
185
|
+
*
|
|
186
|
+
* Decrypt the given data with the specified symmetric key stored in the secure store.
|
|
187
|
+
*
|
|
188
|
+
* @param name The name of the symmetric key to use to decrypt.
|
|
189
|
+
* @param data The data to decrypt.
|
|
190
|
+
* @param iv Optional Initialization Vector.
|
|
191
|
+
*
|
|
192
|
+
* @returns Decrypted data
|
|
193
|
+
*/
|
|
194
|
+
encryptWithSymmetricKeyName(name: string, data: ArrayBuffer, iv?: ArrayBuffer): Promise<ArrayBuffer>;
|
|
195
|
+
/**
|
|
196
|
+
* Decrypt the given data with the specified symmetric key stored in the secure store.
|
|
197
|
+
*
|
|
198
|
+
* @param name The name of the symmetric key to use to decrypt.
|
|
199
|
+
* @param data The data to decrypt.
|
|
200
|
+
*
|
|
201
|
+
* @returns Decrypted data
|
|
202
|
+
*
|
|
203
|
+
* @throws {@link UnrecognizedAlgorithmError}
|
|
204
|
+
*/
|
|
205
|
+
encryptWithSymmetricKeyName(name: string, data: ArrayBuffer, options?: SymmetricEncryptionOptions): Promise<ArrayBuffer>;
|
|
206
|
+
/**
|
|
207
|
+
* @deprecated Use version with `options` param.
|
|
208
|
+
* Decrypt the given data with the specified symmetric key stored in the secure store.
|
|
209
|
+
*
|
|
210
|
+
* @param name The name of the symmetric key to use to decrypt.
|
|
211
|
+
* @param data The data to decrypt.
|
|
212
|
+
* @param iv Optional Initialization Vector.
|
|
213
|
+
*
|
|
214
|
+
* @returns Decrypted data
|
|
215
|
+
*/
|
|
216
|
+
decryptWithSymmetricKeyName(name: string, data: ArrayBuffer, iv?: ArrayBuffer): Promise<ArrayBuffer>;
|
|
217
|
+
/**
|
|
218
|
+
* Decrypt the given data with the specified symmetric key stored in the secure store.
|
|
219
|
+
*
|
|
220
|
+
* @param name The name of the symmetric key to use to decrypt.
|
|
221
|
+
* @param data The data to decrypt.
|
|
222
|
+
*
|
|
223
|
+
* @returns Decrypted data
|
|
224
|
+
*
|
|
225
|
+
* @throws {@link UnrecognizedAlgorithmError}
|
|
226
|
+
*/
|
|
227
|
+
decryptWithSymmetricKeyName(name: string, data: ArrayBuffer, options?: SymmetricEncryptionOptions): Promise<ArrayBuffer>;
|
|
228
|
+
/**
|
|
229
|
+
* Encrypts the given data with the specified public key.
|
|
230
|
+
*
|
|
231
|
+
* @param name The name of the public key to use for encryption.
|
|
232
|
+
* @param data The data to encrypt.
|
|
233
|
+
*
|
|
234
|
+
* @returns Encrypted data
|
|
235
|
+
*
|
|
236
|
+
* @throws {@link UnrecognizedAlgorithmError}
|
|
237
|
+
*/
|
|
238
|
+
encryptWithPublicKey(name: string, data: ArrayBuffer, options?: AsymmetricEncryptionOptions): Promise<ArrayBuffer>;
|
|
239
|
+
/**
|
|
240
|
+
* Decrypts the given data with the specified private key.
|
|
241
|
+
*
|
|
242
|
+
* @param name The name of the private key to use for decryption.
|
|
243
|
+
* @param data The data to decrypt.
|
|
244
|
+
*
|
|
245
|
+
* @returns Decrypted data or undefined if the private key is not found.
|
|
246
|
+
*
|
|
247
|
+
* @throws {@link UnrecognizedAlgorithmError}
|
|
248
|
+
*/
|
|
249
|
+
decryptWithPrivateKey(name: string, data: ArrayBuffer, options?: AsymmetricEncryptionOptions): Promise<ArrayBuffer | undefined>;
|
|
250
|
+
/**
|
|
251
|
+
* Remove all keys associated with this `SudoKeyManager`
|
|
252
|
+
*/
|
|
253
|
+
removeAllKeys(): Promise<void>;
|
|
254
|
+
/**
|
|
255
|
+
* Generates and securely stores a symmetric key.
|
|
256
|
+
*
|
|
257
|
+
* @param name The name of the symmetric key.
|
|
258
|
+
*/
|
|
259
|
+
generateSymmetricKey(name: string): Promise<void>;
|
|
260
|
+
/**
|
|
261
|
+
* Generates a symmetric key, derived from a password using PBKDF2.
|
|
262
|
+
*
|
|
263
|
+
* @param name The name to store the symmetric key as
|
|
264
|
+
* @param password The password from which to generate the symmetric key
|
|
265
|
+
* @param salt Salt to use in generation of the key
|
|
266
|
+
* @param rounds The number of rounds of PBKDF2 to perform. Default: per getDefaultPBKDF2Rounds
|
|
267
|
+
*
|
|
268
|
+
* @returns The generated symmetric key.
|
|
269
|
+
*/
|
|
270
|
+
generateSymmetricKeyFromPassword(password: ArrayBuffer, salt: ArrayBuffer, options?: {
|
|
271
|
+
rounds?: number;
|
|
272
|
+
}): Promise<ArrayBuffer>;
|
|
273
|
+
/**
|
|
274
|
+
* Generate random bytes using a secure random number generator.
|
|
275
|
+
*
|
|
276
|
+
* @param size Number of random bytes to generate
|
|
277
|
+
*
|
|
278
|
+
* @returns ArrayBuffer containing the random bytes.
|
|
279
|
+
*/
|
|
280
|
+
generateRandomData(size: number): Promise<ArrayBuffer>;
|
|
281
|
+
/**
|
|
282
|
+
* Creates a SHA256 hash of the specified data.
|
|
283
|
+
*
|
|
284
|
+
* @param data Data to hash.
|
|
285
|
+
*/
|
|
286
|
+
generateHash(data: ArrayBuffer): Promise<ArrayBuffer>;
|
|
287
|
+
/**
|
|
288
|
+
* Generates and securely stores a key pair for public key cryptography.
|
|
289
|
+
*
|
|
290
|
+
* The public key is exported as `SubjectPublicKeyInfo (spki)
|
|
291
|
+
* The private key is exported as `pkcs8`
|
|
292
|
+
*
|
|
293
|
+
* @param name The name of the key pair to be generated.
|
|
294
|
+
*/
|
|
295
|
+
generateKeyPair(name: string): Promise<void>;
|
|
296
|
+
/**
|
|
297
|
+
* Export all contents of the key manager as an array of KeyArchiveKeyInfo
|
|
298
|
+
* ready for archive.
|
|
299
|
+
*/
|
|
300
|
+
exportKeys(): Promise<KeyData[]>;
|
|
301
|
+
}
|
|
302
|
+
export declare class DefaultSudoKeyManager implements SudoKeyManager {
|
|
303
|
+
private readonly sudoCryptoProvider;
|
|
304
|
+
/**
|
|
305
|
+
* @param namespace A namespace to use as part of the key name. If a namespace is specified then
|
|
306
|
+
* a unique identifier for each key will be `<namespace>.<keyName>`. Namespace cannot be an empty string.
|
|
307
|
+
* @param sudoCryptoProvider
|
|
308
|
+
*/
|
|
309
|
+
constructor(sudoCryptoProvider: SudoCryptoProvider);
|
|
310
|
+
get serviceName(): string;
|
|
311
|
+
get namespace(): string;
|
|
312
|
+
addPassword(password: ArrayBuffer, name: string): Promise<void>;
|
|
313
|
+
getPassword(name: string): Promise<ArrayBuffer | undefined>;
|
|
314
|
+
deletePassword(name: string): Promise<void>;
|
|
315
|
+
updatePassword(password: ArrayBuffer, name: string): Promise<void>;
|
|
316
|
+
addSymmetricKey(key: ArrayBuffer, name: string): Promise<void>;
|
|
317
|
+
getSymmetricKey(name: string): Promise<ArrayBuffer | undefined>;
|
|
318
|
+
doesSymmetricKeyExist(name: string): Promise<boolean>;
|
|
319
|
+
deleteSymmetricKey(name: string): Promise<void>;
|
|
320
|
+
generateKeyPair(name: string): Promise<void>;
|
|
321
|
+
addPrivateKey(key: ArrayBuffer, name: string): Promise<void>;
|
|
322
|
+
getPrivateKey(name: string): Promise<ArrayBuffer | undefined>;
|
|
323
|
+
doesPrivateKeyExist(name: string): Promise<boolean>;
|
|
324
|
+
addPublicKey(key: ArrayBuffer, name: string): Promise<void>;
|
|
325
|
+
deletePublicKey(name: string): Promise<void>;
|
|
326
|
+
getPublicKey(name: string): Promise<PublicKey | undefined>;
|
|
327
|
+
deleteKeyPair(name: string): Promise<void>;
|
|
328
|
+
generateSignatureWithPrivateKey(name: string, data: ArrayBuffer): Promise<ArrayBuffer>;
|
|
329
|
+
verifySignatureWithPublicKey(name: string, data: ArrayBuffer, signature: ArrayBuffer): Promise<boolean>;
|
|
330
|
+
encryptWithSymmetricKey(key: ArrayBuffer, data: ArrayBuffer, ivOrOptions?: ArrayBuffer | SymmetricEncryptionOptions): Promise<ArrayBuffer>;
|
|
331
|
+
decryptWithSymmetricKey(key: ArrayBuffer, data: ArrayBuffer, ivOrOptions?: ArrayBuffer | SymmetricEncryptionOptions): Promise<ArrayBuffer>;
|
|
332
|
+
encryptWithSymmetricKeyName(name: string, data: ArrayBuffer, ivOrOptions?: ArrayBuffer | SymmetricEncryptionOptions): Promise<ArrayBuffer>;
|
|
333
|
+
decryptWithSymmetricKeyName(name: string, data: ArrayBuffer, ivOrOptions?: ArrayBuffer | SymmetricEncryptionOptions): Promise<ArrayBuffer>;
|
|
334
|
+
encryptWithPublicKey(name: string, data: ArrayBuffer, options?: AsymmetricEncryptionOptions): Promise<ArrayBuffer>;
|
|
335
|
+
decryptWithPrivateKey(name: string, data: ArrayBuffer, options?: AsymmetricEncryptionOptions): Promise<ArrayBuffer | undefined>;
|
|
336
|
+
removeAllKeys(): Promise<void>;
|
|
337
|
+
generateSymmetricKey(name: string): Promise<void>;
|
|
338
|
+
generateSymmetricKeyFromPassword(password: ArrayBuffer, salt: ArrayBuffer, options?: {
|
|
339
|
+
rounds?: number;
|
|
340
|
+
}): Promise<ArrayBuffer>;
|
|
341
|
+
generateRandomData(size: number): Promise<ArrayBuffer>;
|
|
342
|
+
generateHash(data: ArrayBuffer): Promise<ArrayBuffer>;
|
|
343
|
+
exportKeys(): Promise<KeyData[]>;
|
|
344
|
+
}
|