@cardano-sdk/key-management 0.24.13 → 0.25.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/dist/cjs/cip8/cip30signData.d.ts +2 -2
- package/dist/cjs/cip8/cip30signData.d.ts.map +1 -1
- package/dist/cjs/cip8/cip30signData.js +35 -8
- package/dist/cjs/cip8/cip30signData.js.map +1 -1
- package/dist/cjs/cip8/types.d.ts +1 -1
- package/dist/cjs/cip8/types.d.ts.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/cip8/cip30signData.d.ts +2 -2
- package/dist/esm/cip8/cip30signData.d.ts.map +1 -1
- package/dist/esm/cip8/cip30signData.js +12 -8
- package/dist/esm/cip8/cip30signData.js.map +1 -1
- package/dist/esm/cip8/types.d.ts +1 -1
- package/dist/esm/cip8/types.d.ts.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
|
@@ -7,7 +7,7 @@ import { Cip8SignDataContext } from './types.js';
|
|
|
7
7
|
import { ComposableError, HexBlob } from '@cardano-sdk/util';
|
|
8
8
|
export interface Cip30SignDataRequest {
|
|
9
9
|
knownAddresses: GroupedAddress[];
|
|
10
|
-
signWith: Cardano.PaymentAddress | Cardano.RewardAccount
|
|
10
|
+
signWith: Cardano.PaymentAddress | Cardano.RewardAccount;
|
|
11
11
|
payload: HexBlob;
|
|
12
12
|
sender?: MessageSender;
|
|
13
13
|
}
|
|
@@ -21,7 +21,7 @@ export declare class Cip30DataSignError<InnerError = unknown> extends Composable
|
|
|
21
21
|
readonly info: string;
|
|
22
22
|
constructor(code: Cip30DataSignErrorCode, info: string, innerError?: InnerError);
|
|
23
23
|
}
|
|
24
|
-
export declare const getAddressBytes: (signWith: Cardano.PaymentAddress | Cardano.RewardAccount
|
|
24
|
+
export declare const getAddressBytes: (signWith: Cardano.PaymentAddress | Cardano.RewardAccount) => Buffer;
|
|
25
25
|
export declare const createCoseKey: (addressBytes: Uint8Array, publicKey: Crypto.Ed25519PublicKeyHex) => COSEKey;
|
|
26
26
|
export declare const cip30signData: (keyAgent: KeyAgent, { knownAddresses, signWith, payload }: Cip8SignDataContext) => Promise<Cip30DataSignature>;
|
|
27
27
|
//# sourceMappingURL=cip30signData.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cip30signData.d.ts","sourceRoot":"","sources":["../../../src/cip8/cip30signData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAA4B,cAAc,EAAE,QAAQ,EAAW,aAAa,EAAE,MAAM,UAAU,CAAC;AACtG,OAAO,EAGL,OAAO,EASR,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,OAAO,EAAQ,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAI7D,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,QAAQ,EAAE,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"cip30signData.d.ts","sourceRoot":"","sources":["../../../src/cip8/cip30signData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAA4B,cAAc,EAAE,QAAQ,EAAW,aAAa,EAAE,MAAM,UAAU,CAAC;AACtG,OAAO,EAGL,OAAO,EASR,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,OAAO,EAAQ,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAI7D,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,QAAQ,EAAE,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IACzD,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,oBAAY,sBAAsB;IAChC,eAAe,IAAI;IACnB,YAAY,IAAI;IAChB,YAAY,IAAI;CACjB;AAED,qBAAa,kBAAkB,CAAC,UAAU,GAAG,OAAO,CAAE,SAAQ,eAAe,CAAC,UAAU,CAAC;aAC3D,IAAI,EAAE,sBAAsB;aAAkB,IAAI,EAAE,MAAM;gBAA1D,IAAI,EAAE,sBAAsB,EAAkB,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU;CAGhH;AAED,eAAO,MAAM,eAAe,aAAc,QAAQ,cAAc,GAAG,QAAQ,aAAa,WAQvF,CAAC;AA8DF,eAAO,MAAM,aAAa,iBAAkB,UAAU,aAAa,OAAO,mBAAmB,YAO5F,CAAC;AAQF,eAAO,MAAM,aAAa,aACd,QAAQ,yCACqB,mBAAmB,KACzD,QAAQ,kBAAkB,CAwB5B,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as Crypto from '@cardano-sdk/crypto';
|
|
1
2
|
import { AlgorithmId, CBORValue, COSEKey, KeyType as COSEKeyType, COSESign1Builder, CurveType, HeaderMap, Headers, Label, ProtectedHeaderMap } from '@emurgo/cardano-message-signing-nodejs';
|
|
2
3
|
import { Cardano, util } from '@cardano-sdk/core';
|
|
3
4
|
import { ComposableError } from '@cardano-sdk/util';
|
|
@@ -23,10 +24,8 @@ export const getAddressBytes = (signWith) => {
|
|
|
23
24
|
}
|
|
24
25
|
return Buffer.from(address.toBytes(), 'hex');
|
|
25
26
|
};
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
return DREP_KEY_DERIVATION_PATH;
|
|
29
|
-
}
|
|
27
|
+
const isPaymentAddress = (signWith) => signWith.startsWith('addr');
|
|
28
|
+
const getDerivationPath = async (signWith, knownAddresses, dRepKeyHash) => {
|
|
30
29
|
const isRewardAccount = signWith.startsWith('stake');
|
|
31
30
|
if (isRewardAccount) {
|
|
32
31
|
const knownRewardAddress = knownAddresses.find(({ rewardAccount }) => rewardAccount === signWith);
|
|
@@ -34,6 +33,13 @@ const getDerivationPath = async (signWith, knownAddresses) => {
|
|
|
34
33
|
throw new Cip30DataSignError(Cip30DataSignErrorCode.ProofGeneration, 'Unknown reward address');
|
|
35
34
|
return knownRewardAddress.stakeKeyDerivationPath || STAKE_KEY_DERIVATION_PATH;
|
|
36
35
|
}
|
|
36
|
+
if (isPaymentAddress(signWith)) {
|
|
37
|
+
const drepAddr = Cardano.Address.fromString(signWith);
|
|
38
|
+
if (drepAddr?.getType() === Cardano.AddressType.EnterpriseKey &&
|
|
39
|
+
drepAddr?.getProps().paymentPart?.hash === Crypto.Hash28ByteBase16.fromEd25519KeyHashHex(dRepKeyHash)) {
|
|
40
|
+
return DREP_KEY_DERIVATION_PATH;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
37
43
|
const knownAddress = knownAddresses.find(({ address }) => address === signWith);
|
|
38
44
|
if (!knownAddress) {
|
|
39
45
|
throw new Cip30DataSignError(Cip30DataSignErrorCode.ProofGeneration, 'Unknown address');
|
|
@@ -64,11 +70,9 @@ export const createCoseKey = (addressBytes, publicKey) => {
|
|
|
64
70
|
return coseKey;
|
|
65
71
|
};
|
|
66
72
|
export const cip30signData = async (keyAgent, { knownAddresses, signWith, payload }) => {
|
|
67
|
-
|
|
68
|
-
throw new Cip30DataSignError(Cip30DataSignErrorCode.AddressNotPK, 'Invalid address');
|
|
69
|
-
}
|
|
73
|
+
const dRepKeyHash = (await Crypto.Ed25519PublicKey.fromHex(await keyAgent.derivePublicKey(DREP_KEY_DERIVATION_PATH)).hash()).hex();
|
|
70
74
|
const addressBytes = getAddressBytes(signWith);
|
|
71
|
-
const derivationPath = await getDerivationPath(signWith, knownAddresses);
|
|
75
|
+
const derivationPath = await getDerivationPath(signWith, knownAddresses, dRepKeyHash);
|
|
72
76
|
const builder = COSESign1Builder.new(Headers.new(ProtectedHeaderMap.new(createSigStructureHeaders(addressBytes)), HeaderMap.new()), Buffer.from(payload, 'hex'), false);
|
|
73
77
|
const sigStructure = builder.make_data_to_sign();
|
|
74
78
|
const { signature, publicKey } = await signSigStructure(keyAgent, derivationPath, sigStructure);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cip30signData.js","sourceRoot":"","sources":["../../../src/cip8/cip30signData.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cip30signData.js","sourceRoot":"","sources":["../../../src/cip8/cip30signData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EACL,WAAW,EACX,SAAS,EACT,OAAO,EACP,OAAO,IAAI,WAAW,EACtB,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,OAAO,EACP,KAAK,EACL,kBAAkB,EAEnB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAGlD,OAAO,EAAE,eAAe,EAAW,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAS9E,MAAM,CAAN,IAAY,sBAIX;AAJD,WAAY,sBAAsB;IAChC,yFAAmB,CAAA;IACnB,mFAAgB,CAAA;IAChB,mFAAgB,CAAA;AAClB,CAAC,EAJW,sBAAsB,KAAtB,sBAAsB,QAIjC;AAED,MAAM,OAAO,kBAAyC,SAAQ,eAA2B;IACvF,YAA4B,IAA4B,EAAkB,IAAY,EAAE,UAAuB;QAC7G,KAAK,CAAC,uBAAuB,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;QADvB,SAAI,GAAJ,IAAI,CAAwB;QAAkB,SAAI,GAAJ,IAAI,CAAQ;IAEtF,CAAC;CACF;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,QAAwD,EAAE,EAAE;IAC1F,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAErD,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,IAAI,kBAAkB,CAAC,sBAAsB,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;KACtF;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CACvB,QAAwD,EACpB,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAErE,MAAM,iBAAiB,GAAG,KAAK,EAC7B,QAAwD,EACxD,cAAgC,EAChC,WAAqC,EACrC,EAAE;IACF,MAAM,eAAe,GAAG,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAErD,IAAI,eAAe,EAAE;QACnB,MAAM,kBAAkB,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC;QAElG,IAAI,CAAC,kBAAkB;YACrB,MAAM,IAAI,kBAAkB,CAAC,sBAAsB,CAAC,eAAe,EAAE,wBAAwB,CAAC,CAAC;QAEjG,OAAO,kBAAkB,CAAC,sBAAsB,IAAI,yBAAyB,CAAC;KAC/E;IAED,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE;QAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACtD,IACE,QAAQ,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,WAAW,CAAC,aAAa;YACzD,QAAQ,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,IAAI,KAAK,MAAM,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,WAAW,CAAC,EACrG;YACA,OAAO,wBAAwB,CAAC;SACjC;KACF;IAED,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC;IAEhF,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,IAAI,kBAAkB,CAAC,sBAAsB,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;KACzF;IAED,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,IAAyB,EAAE,CAAC;AACrF,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,YAAwB,EAAE,EAAE;IAC7D,MAAM,gBAAgB,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC;IACzC,gBAAgB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAC1C,gBAAgB,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;IAClF,gBAAgB,CAAC,gBAAgB,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9E,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CACvB,QAAkB,EAClB,cAAwC,EACxC,YAA0B,EAE1B,EAAE;IACF,IAAI;QACF,OAAO,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;KACpF;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,kBAAkB,CAAC,sBAAsB,CAAC,YAAY,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;KAC5F;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,YAAwB,EAAE,SAAqC,EAAE,EAAE;IAC/F,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAClE,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACjC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IACrE,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAClG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACpF,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAQF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,QAAkB,EAClB,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAuB,EAC7B,EAAE;IAC/B,MAAM,WAAW,GAAG,CAClB,MAAM,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,QAAQ,CAAC,eAAe,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,EAAE,CACvG,CAAC,GAAG,EAAE,CAAC;IAER,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;IAEtF,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAClC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAC7F,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAC3B,KAAK,CACN,CAAC;IACF,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IACjD,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;IAEhG,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAE/D,MAAM,OAAO,GAAG,aAAa,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAEvD,OAAO;QACL,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACxC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;KACjD,CAAC;AACJ,CAAC,CAAC"}
|
package/dist/esm/cip8/types.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export declare type CoseSign1CborHex = HexBlob;
|
|
|
6
6
|
export declare type CoseKeyCborHex = HexBlob;
|
|
7
7
|
export interface Cip8SignDataContext {
|
|
8
8
|
knownAddresses: GroupedAddress[];
|
|
9
|
-
signWith: Cardano.PaymentAddress | Cardano.RewardAccount
|
|
9
|
+
signWith: Cardano.PaymentAddress | Cardano.RewardAccount;
|
|
10
10
|
payload: HexBlob;
|
|
11
11
|
}
|
|
12
12
|
export interface Cip8SignResult {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cip8/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,oBAAY,gBAAgB,GAAG,OAAO,CAAC;AACvC,oBAAY,cAAc,GAAG,OAAO,CAAC;AAErC,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,QAAQ,EAAE,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cip8/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,oBAAY,gBAAgB,GAAG,OAAO,CAAC;AACvC,oBAAY,cAAc,GAAG,OAAO,CAAC;AAErC,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,QAAQ,EAAE,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IACzD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC,mBAAmB,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC,mBAAmB,CAAC;CACvC"}
|