@meshsdk/core-cst 1.7.15 → 1.7.17
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/index.cjs +62 -6
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +62 -6
- package/package.json +3 -3
package/dist/index.cjs
CHANGED
|
@@ -1130,10 +1130,6 @@ var DRepID = import_core.Cardano.DRepID;
|
|
|
1130
1130
|
var DRep = import_core.Serialization.DRep;
|
|
1131
1131
|
var StakeCredentialStatus = import_core.Cardano.StakeCredentialStatus;
|
|
1132
1132
|
|
|
1133
|
-
// src/message-signing/cose-sign1.ts
|
|
1134
|
-
var import_buffer = require("buffer");
|
|
1135
|
-
var import_blakejs = __toESM(require_blakejs(), 1);
|
|
1136
|
-
|
|
1137
1133
|
// src/stricahq/bip32ed25519/wrapper.ts
|
|
1138
1134
|
var cjsBip32ed25519 = __toESM(require("@stricahq/bip32ed25519"), 1);
|
|
1139
1135
|
var bip32ed25519 = cjsBip32ed25519;
|
|
@@ -1151,6 +1147,8 @@ var StricaEncoder = exportedCbors.Encoder;
|
|
|
1151
1147
|
var StricaDecoder = exportedCbors.Decoder;
|
|
1152
1148
|
|
|
1153
1149
|
// src/message-signing/cose-sign1.ts
|
|
1150
|
+
var import_buffer = require("buffer");
|
|
1151
|
+
var import_blakejs = __toESM(require_blakejs(), 1);
|
|
1154
1152
|
var CoseSign1 = class _CoseSign1 {
|
|
1155
1153
|
protectedMap;
|
|
1156
1154
|
unProtectedMap;
|
|
@@ -1274,8 +1272,66 @@ var getCoseKeyFromPublicKey = (cbor) => {
|
|
|
1274
1272
|
};
|
|
1275
1273
|
|
|
1276
1274
|
// src/message-signing/check-signature.ts
|
|
1277
|
-
var checkSignature = (data, { key, signature }) => {
|
|
1275
|
+
var checkSignature = (data, { key, signature }, address) => {
|
|
1278
1276
|
const builder = CoseSign1.fromCbor(signature);
|
|
1277
|
+
const publicKeyBuffer = getPublicKeyFromCoseKey(key);
|
|
1278
|
+
if (address) {
|
|
1279
|
+
let network = NetworkId.Mainnet;
|
|
1280
|
+
const paymentAddress = BaseAddress.fromAddress(Address.fromBech32(address));
|
|
1281
|
+
const coseSign1PublicKey = new StricaBip32PublicKey(publicKeyBuffer);
|
|
1282
|
+
const credential = {
|
|
1283
|
+
hash: Hash28ByteBase162.fromEd25519KeyHashHex(
|
|
1284
|
+
Ed25519KeyHashHex2(
|
|
1285
|
+
coseSign1PublicKey.toPublicKey().hash().toString("hex")
|
|
1286
|
+
)
|
|
1287
|
+
),
|
|
1288
|
+
type: 0
|
|
1289
|
+
};
|
|
1290
|
+
if (address.startsWith("addr")) {
|
|
1291
|
+
if (address.startsWith("addr_test1")) {
|
|
1292
|
+
network = NetworkId.Testnet;
|
|
1293
|
+
}
|
|
1294
|
+
const stakeCredential = paymentAddress?.getStakeCredential();
|
|
1295
|
+
if (stakeCredential) {
|
|
1296
|
+
const paymentAddressBech32 = BaseAddress.fromCredentials(
|
|
1297
|
+
network,
|
|
1298
|
+
credential,
|
|
1299
|
+
stakeCredential
|
|
1300
|
+
).toAddress().toBech32();
|
|
1301
|
+
if (address !== paymentAddressBech32) {
|
|
1302
|
+
const extractedRewardAddress = RewardAddress.fromCredentials(
|
|
1303
|
+
network,
|
|
1304
|
+
stakeCredential
|
|
1305
|
+
).toAddress().toBech32();
|
|
1306
|
+
const rewardAddress = RewardAddress.fromCredentials(
|
|
1307
|
+
network,
|
|
1308
|
+
credential
|
|
1309
|
+
).toAddress().toBech32();
|
|
1310
|
+
if (rewardAddress !== extractedRewardAddress) {
|
|
1311
|
+
return false;
|
|
1312
|
+
}
|
|
1313
|
+
}
|
|
1314
|
+
} else {
|
|
1315
|
+
const enterpriseAddress = EnterpriseAddress.fromCredentials(
|
|
1316
|
+
network,
|
|
1317
|
+
credential
|
|
1318
|
+
).toAddress().toBech32();
|
|
1319
|
+
if (enterpriseAddress !== address) {
|
|
1320
|
+
return false;
|
|
1321
|
+
}
|
|
1322
|
+
}
|
|
1323
|
+
} else if (address.startsWith("stake")) {
|
|
1324
|
+
if (address.startsWith("stake_test1")) {
|
|
1325
|
+
network = NetworkId.Testnet;
|
|
1326
|
+
}
|
|
1327
|
+
const rewardAddress = RewardAddress.fromCredentials(network, credential).toAddress().toBech32();
|
|
1328
|
+
if (rewardAddress !== address) {
|
|
1329
|
+
return false;
|
|
1330
|
+
}
|
|
1331
|
+
} else {
|
|
1332
|
+
return false;
|
|
1333
|
+
}
|
|
1334
|
+
}
|
|
1279
1335
|
if (builder.getPayload() === null) {
|
|
1280
1336
|
return false;
|
|
1281
1337
|
}
|
|
@@ -1283,7 +1339,7 @@ var checkSignature = (data, { key, signature }) => {
|
|
|
1283
1339
|
return false;
|
|
1284
1340
|
}
|
|
1285
1341
|
return builder.verifySignature({
|
|
1286
|
-
publicKeyBuffer
|
|
1342
|
+
publicKeyBuffer
|
|
1287
1343
|
});
|
|
1288
1344
|
};
|
|
1289
1345
|
|
package/dist/index.d.cts
CHANGED
|
@@ -220,7 +220,8 @@ type Signer = {
|
|
|
220
220
|
key: StricaPrivateKey;
|
|
221
221
|
};
|
|
222
222
|
|
|
223
|
-
|
|
223
|
+
/** @param address - Optional Bech32 string of a stake, stake_test1, addr, or addr_test1 address. If provided, this function will validate the signer's address against this value. */
|
|
224
|
+
declare const checkSignature: (data: string, { key, signature }: DataSignature, address?: string) => boolean;
|
|
224
225
|
|
|
225
226
|
declare class CoseSign1 {
|
|
226
227
|
private protectedMap;
|
package/dist/index.d.ts
CHANGED
|
@@ -220,7 +220,8 @@ type Signer = {
|
|
|
220
220
|
key: StricaPrivateKey;
|
|
221
221
|
};
|
|
222
222
|
|
|
223
|
-
|
|
223
|
+
/** @param address - Optional Bech32 string of a stake, stake_test1, addr, or addr_test1 address. If provided, this function will validate the signer's address against this value. */
|
|
224
|
+
declare const checkSignature: (data: string, { key, signature }: DataSignature, address?: string) => boolean;
|
|
224
225
|
|
|
225
226
|
declare class CoseSign1 {
|
|
226
227
|
private protectedMap;
|
package/dist/index.js
CHANGED
|
@@ -970,10 +970,6 @@ var DRepID = Cardano.DRepID;
|
|
|
970
970
|
var DRep = Serialization.DRep;
|
|
971
971
|
var StakeCredentialStatus = Cardano.StakeCredentialStatus;
|
|
972
972
|
|
|
973
|
-
// src/message-signing/cose-sign1.ts
|
|
974
|
-
var import_blakejs = __toESM(require_blakejs(), 1);
|
|
975
|
-
import { Buffer as Buffer2 } from "buffer";
|
|
976
|
-
|
|
977
973
|
// src/stricahq/bip32ed25519/wrapper.ts
|
|
978
974
|
import * as cjsBip32ed25519 from "@stricahq/bip32ed25519";
|
|
979
975
|
var bip32ed25519 = cjsBip32ed25519;
|
|
@@ -991,6 +987,8 @@ var StricaEncoder = exportedCbors.Encoder;
|
|
|
991
987
|
var StricaDecoder = exportedCbors.Decoder;
|
|
992
988
|
|
|
993
989
|
// src/message-signing/cose-sign1.ts
|
|
990
|
+
var import_blakejs = __toESM(require_blakejs(), 1);
|
|
991
|
+
import { Buffer as Buffer2 } from "buffer";
|
|
994
992
|
var CoseSign1 = class _CoseSign1 {
|
|
995
993
|
protectedMap;
|
|
996
994
|
unProtectedMap;
|
|
@@ -1114,8 +1112,66 @@ var getCoseKeyFromPublicKey = (cbor) => {
|
|
|
1114
1112
|
};
|
|
1115
1113
|
|
|
1116
1114
|
// src/message-signing/check-signature.ts
|
|
1117
|
-
var checkSignature = (data, { key, signature }) => {
|
|
1115
|
+
var checkSignature = (data, { key, signature }, address) => {
|
|
1118
1116
|
const builder = CoseSign1.fromCbor(signature);
|
|
1117
|
+
const publicKeyBuffer = getPublicKeyFromCoseKey(key);
|
|
1118
|
+
if (address) {
|
|
1119
|
+
let network = NetworkId.Mainnet;
|
|
1120
|
+
const paymentAddress = BaseAddress.fromAddress(Address.fromBech32(address));
|
|
1121
|
+
const coseSign1PublicKey = new StricaBip32PublicKey(publicKeyBuffer);
|
|
1122
|
+
const credential = {
|
|
1123
|
+
hash: Hash28ByteBase162.fromEd25519KeyHashHex(
|
|
1124
|
+
Ed25519KeyHashHex2(
|
|
1125
|
+
coseSign1PublicKey.toPublicKey().hash().toString("hex")
|
|
1126
|
+
)
|
|
1127
|
+
),
|
|
1128
|
+
type: 0
|
|
1129
|
+
};
|
|
1130
|
+
if (address.startsWith("addr")) {
|
|
1131
|
+
if (address.startsWith("addr_test1")) {
|
|
1132
|
+
network = NetworkId.Testnet;
|
|
1133
|
+
}
|
|
1134
|
+
const stakeCredential = paymentAddress?.getStakeCredential();
|
|
1135
|
+
if (stakeCredential) {
|
|
1136
|
+
const paymentAddressBech32 = BaseAddress.fromCredentials(
|
|
1137
|
+
network,
|
|
1138
|
+
credential,
|
|
1139
|
+
stakeCredential
|
|
1140
|
+
).toAddress().toBech32();
|
|
1141
|
+
if (address !== paymentAddressBech32) {
|
|
1142
|
+
const extractedRewardAddress = RewardAddress.fromCredentials(
|
|
1143
|
+
network,
|
|
1144
|
+
stakeCredential
|
|
1145
|
+
).toAddress().toBech32();
|
|
1146
|
+
const rewardAddress = RewardAddress.fromCredentials(
|
|
1147
|
+
network,
|
|
1148
|
+
credential
|
|
1149
|
+
).toAddress().toBech32();
|
|
1150
|
+
if (rewardAddress !== extractedRewardAddress) {
|
|
1151
|
+
return false;
|
|
1152
|
+
}
|
|
1153
|
+
}
|
|
1154
|
+
} else {
|
|
1155
|
+
const enterpriseAddress = EnterpriseAddress.fromCredentials(
|
|
1156
|
+
network,
|
|
1157
|
+
credential
|
|
1158
|
+
).toAddress().toBech32();
|
|
1159
|
+
if (enterpriseAddress !== address) {
|
|
1160
|
+
return false;
|
|
1161
|
+
}
|
|
1162
|
+
}
|
|
1163
|
+
} else if (address.startsWith("stake")) {
|
|
1164
|
+
if (address.startsWith("stake_test1")) {
|
|
1165
|
+
network = NetworkId.Testnet;
|
|
1166
|
+
}
|
|
1167
|
+
const rewardAddress = RewardAddress.fromCredentials(network, credential).toAddress().toBech32();
|
|
1168
|
+
if (rewardAddress !== address) {
|
|
1169
|
+
return false;
|
|
1170
|
+
}
|
|
1171
|
+
} else {
|
|
1172
|
+
return false;
|
|
1173
|
+
}
|
|
1174
|
+
}
|
|
1119
1175
|
if (builder.getPayload() === null) {
|
|
1120
1176
|
return false;
|
|
1121
1177
|
}
|
|
@@ -1123,7 +1179,7 @@ var checkSignature = (data, { key, signature }) => {
|
|
|
1123
1179
|
return false;
|
|
1124
1180
|
}
|
|
1125
1181
|
return builder.verifySignature({
|
|
1126
|
-
publicKeyBuffer
|
|
1182
|
+
publicKeyBuffer
|
|
1127
1183
|
});
|
|
1128
1184
|
};
|
|
1129
1185
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meshsdk/core-cst",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.17",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"browser": "./dist/index.js",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"@harmoniclabs/cbor": "1.3.0",
|
|
43
43
|
"@harmoniclabs/plutus-data": "1.2.4",
|
|
44
44
|
"@harmoniclabs/uplc": "1.2.4",
|
|
45
|
-
"@meshsdk/common": "1.7.
|
|
45
|
+
"@meshsdk/common": "1.7.17",
|
|
46
46
|
"@stricahq/bip32ed25519": "^1.1.0",
|
|
47
47
|
"@stricahq/cbors": "^1.0.3",
|
|
48
48
|
"pbkdf2": "^3.1.2"
|
|
@@ -59,4 +59,4 @@
|
|
|
59
59
|
"blockchain",
|
|
60
60
|
"sdk"
|
|
61
61
|
]
|
|
62
|
-
}
|
|
62
|
+
}
|