@sudoplatform/sudo-common 7.1.2 → 7.1.3
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/lib/configurationManager/defaultConfigurationManager.js +3 -5
- package/package.json +2 -3
- 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/bin/outdated-with-suppression.sh +0 -203
- package/bin/suppress-audit.sh +0 -15
- package/bin/suppress-outdated.sh +0 -60
- package/bin/yarn-audit-with-suppression.sh +0 -19
- 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 -245
- 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 -245
- 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 -75
- 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 -45
- 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 -75
- 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 -45
- 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
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import * as t from 'io-ts'
|
|
2
|
-
import { KeyArchiveKeyInfoCodec } from './keyInfo'
|
|
3
|
-
|
|
4
|
-
export const CURRENT_ARCHIVE_VERSION = 3
|
|
5
|
-
|
|
6
|
-
const CommonKeyArchiveRequiredProps = {
|
|
7
|
-
/**
|
|
8
|
-
* Version this arhive format.
|
|
9
|
-
*/
|
|
10
|
-
Version: t.literal(CURRENT_ARCHIVE_VERSION),
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Metainfo user is able to associate with the archive.
|
|
14
|
-
*/
|
|
15
|
-
MetaInfo: t.record(t.string, t.string),
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export const InsecureKeyArchiveType = 'Insecure'
|
|
19
|
-
|
|
20
|
-
const InsecureKeyArchiveRequiredProps = {
|
|
21
|
-
...CommonKeyArchiveRequiredProps,
|
|
22
|
-
/**
|
|
23
|
-
* Disciminant for InsecureKeyArchive type.
|
|
24
|
-
*/
|
|
25
|
-
Type: t.literal(InsecureKeyArchiveType),
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Array of exported keys in clear text.
|
|
29
|
-
*/
|
|
30
|
-
Keys: t.array(KeyArchiveKeyInfoCodec),
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export const InsecureKeyArchiveCodec = t.type(
|
|
34
|
-
InsecureKeyArchiveRequiredProps,
|
|
35
|
-
'InsecureKeyArchive',
|
|
36
|
-
)
|
|
37
|
-
export type InsecureKeyArchive = t.TypeOf<typeof InsecureKeyArchiveCodec>
|
|
38
|
-
|
|
39
|
-
export const SecureKeyArchiveType = 'Secure'
|
|
40
|
-
|
|
41
|
-
const SecureKeyArchiveRequiredProps = {
|
|
42
|
-
...CommonKeyArchiveRequiredProps,
|
|
43
|
-
/**
|
|
44
|
-
* Disciminant for SecureKeyArchive type.
|
|
45
|
-
*/
|
|
46
|
-
Type: t.literal(SecureKeyArchiveType),
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Format is:
|
|
50
|
-
*
|
|
51
|
-
* base64(gzip(encrypt(stringify(array of KeyArchiveKeyInfo)))
|
|
52
|
-
*
|
|
53
|
-
* Encrypt is 256-bit AES-CBC using symmetric key derived from
|
|
54
|
-
* password and IV specified by IV property.
|
|
55
|
-
*/
|
|
56
|
-
Keys: t.string,
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Rounds of PBKDF2 applied to password to derive symmetric key.
|
|
60
|
-
*/
|
|
61
|
-
Rounds: t.number,
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Salt passed to PBKDF2 to derive symmetric key.
|
|
65
|
-
*/
|
|
66
|
-
Salt: t.string,
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* IV used for AES encryption of keys.
|
|
70
|
-
*/
|
|
71
|
-
IV: t.string,
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
const UnrecognizedKeyArchiveProps = {
|
|
75
|
-
Version: t.number,
|
|
76
|
-
Type: t.string,
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export const UnrecognizedKeyArchiveCodec = t.partial(
|
|
80
|
-
UnrecognizedKeyArchiveProps,
|
|
81
|
-
)
|
|
82
|
-
export type UnrecognizedKeyArchive = t.TypeOf<
|
|
83
|
-
typeof UnrecognizedKeyArchiveCodec
|
|
84
|
-
>
|
|
85
|
-
|
|
86
|
-
export const SecureKeyArchiveCodec = t.type(
|
|
87
|
-
SecureKeyArchiveRequiredProps,
|
|
88
|
-
'SecureKeyArchive',
|
|
89
|
-
)
|
|
90
|
-
export type SecureKeyArchive = t.TypeOf<typeof SecureKeyArchiveCodec>
|
|
91
|
-
|
|
92
|
-
export const KeyArchiveCodec = t.union(
|
|
93
|
-
[
|
|
94
|
-
SecureKeyArchiveCodec,
|
|
95
|
-
InsecureKeyArchiveCodec,
|
|
96
|
-
|
|
97
|
-
// Leave UnrecognizedKeyArchiveCodec last so it's tried last
|
|
98
|
-
UnrecognizedKeyArchiveCodec,
|
|
99
|
-
],
|
|
100
|
-
'KeyArchive',
|
|
101
|
-
)
|
|
102
|
-
export type KeyArchive = t.TypeOf<typeof KeyArchiveCodec>
|
|
103
|
-
|
|
104
|
-
export function isSecureKeyArchive(
|
|
105
|
-
keyArchive: KeyArchive,
|
|
106
|
-
): keyArchive is SecureKeyArchive {
|
|
107
|
-
return keyArchive.Type === SecureKeyArchiveType
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
export function isInsecureKeyArchive(
|
|
111
|
-
keyArchive: KeyArchive,
|
|
112
|
-
): keyArchive is InsecureKeyArchive {
|
|
113
|
-
return keyArchive.Type === InsecureKeyArchiveType
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
export function isUnrecognizedKeyArchive(
|
|
117
|
-
keyArchive: KeyArchive,
|
|
118
|
-
): keyArchive is UnrecognizedKeyArchive {
|
|
119
|
-
return !isSecureKeyArchive(keyArchive) && !isInsecureKeyArchive(keyArchive)
|
|
120
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import * as t from 'io-ts'
|
|
2
|
-
|
|
3
|
-
import { KeyArchiveKeyTypeCodec } from './keyType'
|
|
4
|
-
|
|
5
|
-
const KeyArchiveKeyInfoRequiredProps = {
|
|
6
|
-
Name: t.string,
|
|
7
|
-
Type: KeyArchiveKeyTypeCodec,
|
|
8
|
-
Data: t.string,
|
|
9
|
-
Synchronizable: t.boolean,
|
|
10
|
-
Exportable: t.boolean,
|
|
11
|
-
NameSpace: t.string,
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export const KeyArchiveKeyInfoCodec = t.type(
|
|
15
|
-
KeyArchiveKeyInfoRequiredProps,
|
|
16
|
-
'KeyArchiveKeyInfo',
|
|
17
|
-
)
|
|
18
|
-
|
|
19
|
-
export const KeyArchiveKeyInfoArrayCodec = t.array(
|
|
20
|
-
KeyArchiveKeyInfoCodec,
|
|
21
|
-
'KeyArchiveKeyInfoArray',
|
|
22
|
-
)
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Record of key in a key archive
|
|
26
|
-
*
|
|
27
|
-
* @property NameSpace
|
|
28
|
-
* NameSpace to which the key belongs.
|
|
29
|
-
*
|
|
30
|
-
* @property Name
|
|
31
|
-
* Name of the key within the namespace
|
|
32
|
-
*
|
|
33
|
-
* @property Type
|
|
34
|
-
* Type of the key (also implies key format)
|
|
35
|
-
*
|
|
36
|
-
* @property Data
|
|
37
|
-
* Base64 encoded key data
|
|
38
|
-
*
|
|
39
|
-
* @property Synchronizable
|
|
40
|
-
* Whether key should be synced out of band of archiving.
|
|
41
|
-
* For future use - always false for now.
|
|
42
|
-
*
|
|
43
|
-
* @property Exportable
|
|
44
|
-
* Whether restored key should be exportable. Always true on archive.
|
|
45
|
-
* For future use on unarchive.
|
|
46
|
-
*/
|
|
47
|
-
export type KeyArchiveKeyInfo = t.TypeOf<typeof KeyArchiveKeyInfoCodec>
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import * as t from 'io-ts'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Key types supported in key archives
|
|
5
|
-
*
|
|
6
|
-
* These form part of the interoperable secure key archive format.
|
|
7
|
-
*/
|
|
8
|
-
export enum KeyArchiveKeyType {
|
|
9
|
-
// Byte array of secret data - to be stored and retrievable using *Password
|
|
10
|
-
// methods on key managers
|
|
11
|
-
Password = 'password',
|
|
12
|
-
|
|
13
|
-
// PKCS8 PrivateKey encoded RSA private key
|
|
14
|
-
PrivateKey = 'privateKey',
|
|
15
|
-
|
|
16
|
-
// SPKI encoded RSA public key
|
|
17
|
-
PublicKey = 'publicKey',
|
|
18
|
-
|
|
19
|
-
// Byte array of AES symmetric key
|
|
20
|
-
SymmetricKey = 'symmetricKey',
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
// Android is tolerating the following case insensitive alias key type
|
|
24
|
-
// names so we will do the same
|
|
25
|
-
const keyArchiveKeyTypeAlternatives: Record<string, KeyArchiveKeyType> = {
|
|
26
|
-
password: KeyArchiveKeyType.Password,
|
|
27
|
-
privatekey: KeyArchiveKeyType.PrivateKey,
|
|
28
|
-
private_key: KeyArchiveKeyType.PrivateKey,
|
|
29
|
-
publickey: KeyArchiveKeyType.PublicKey,
|
|
30
|
-
public_key: KeyArchiveKeyType.PublicKey,
|
|
31
|
-
symmetrickey: KeyArchiveKeyType.SymmetricKey,
|
|
32
|
-
symmetric_key: KeyArchiveKeyType.SymmetricKey,
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const failureMessage = `Key type is not one of: ${Object.keys(
|
|
36
|
-
keyArchiveKeyTypeAlternatives,
|
|
37
|
-
).join(',')}`
|
|
38
|
-
|
|
39
|
-
const isKeyArchiveKeyType = (u: unknown): u is KeyArchiveKeyType =>
|
|
40
|
-
t.string.is(u) && keyArchiveKeyTypeAlternatives[u.toLowerCase()] !== undefined
|
|
41
|
-
|
|
42
|
-
export const KeyArchiveKeyTypeCodec = new t.Type<KeyArchiveKeyType, string>(
|
|
43
|
-
'KeyArchiveKeyType',
|
|
44
|
-
isKeyArchiveKeyType,
|
|
45
|
-
(u, c) =>
|
|
46
|
-
isKeyArchiveKeyType(u)
|
|
47
|
-
? t.success(keyArchiveKeyTypeAlternatives[u.toLowerCase()])
|
|
48
|
-
: t.failure(u, c, failureMessage),
|
|
49
|
-
t.identity,
|
|
50
|
-
)
|