@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 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: getPublicKeyFromCoseKey(key)
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
- declare const checkSignature: (data: string, { key, signature }: DataSignature) => boolean;
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
- declare const checkSignature: (data: string, { key, signature }: DataSignature) => boolean;
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: getPublicKeyFromCoseKey(key)
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.15",
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.15",
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
+ }