@t2000/sdk 8.0.1 → 8.1.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/index.cjs +20 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +20 -4
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -13,6 +13,7 @@ var cryptography = require('@mysten/sui/cryptography');
|
|
|
13
13
|
var promises = require('fs/promises');
|
|
14
14
|
var path = require('path');
|
|
15
15
|
var os = require('os');
|
|
16
|
+
var ed25519$1 = require('@noble/curves/ed25519');
|
|
16
17
|
var secp256k1 = require('@noble/curves/secp256k1');
|
|
17
18
|
var sha256 = require('@noble/hashes/sha256');
|
|
18
19
|
var utils$1 = require('@noble/hashes/utils');
|
|
@@ -2080,7 +2081,24 @@ function jcs(value) {
|
|
|
2080
2081
|
function verifyReceiptSignature(receipt, signingKeyHex) {
|
|
2081
2082
|
try {
|
|
2082
2083
|
const sig = receipt.signature;
|
|
2083
|
-
if (sig?.
|
|
2084
|
+
if (!sig?.value) {
|
|
2085
|
+
return false;
|
|
2086
|
+
}
|
|
2087
|
+
const endorsed = utils$1.hexToBytes(signingKeyHex.replace(/^0x/, ""));
|
|
2088
|
+
const sigBytes = utils$1.hexToBytes(sig.value);
|
|
2089
|
+
if (sig.algo === "ed25519") {
|
|
2090
|
+
if (sigBytes.length !== 64 || endorsed.length !== 32) {
|
|
2091
|
+
return false;
|
|
2092
|
+
}
|
|
2093
|
+
const { value: _omitted, ...sigRest } = sig;
|
|
2094
|
+
const canonical2 = {
|
|
2095
|
+
...receipt,
|
|
2096
|
+
signature: sigRest
|
|
2097
|
+
};
|
|
2098
|
+
const msg = new TextEncoder().encode(jcs(canonical2));
|
|
2099
|
+
return ed25519$1.ed25519.verify(sigBytes, msg, endorsed);
|
|
2100
|
+
}
|
|
2101
|
+
if (sig.algo !== "ecdsa-secp256k1") {
|
|
2084
2102
|
return false;
|
|
2085
2103
|
}
|
|
2086
2104
|
const canonical = {
|
|
@@ -2096,7 +2114,6 @@ function verifyReceiptSignature(receipt, signingKeyHex) {
|
|
|
2096
2114
|
signature: { algo: sig.algo, key_id: sig.key_id ?? "" }
|
|
2097
2115
|
};
|
|
2098
2116
|
const prehash = sha256.sha256(new TextEncoder().encode(jcs(canonical)));
|
|
2099
|
-
const sigBytes = utils$1.hexToBytes(sig.value);
|
|
2100
2117
|
if (sigBytes.length !== 65) {
|
|
2101
2118
|
return false;
|
|
2102
2119
|
}
|
|
@@ -2108,8 +2125,7 @@ function verifyReceiptSignature(receipt, signingKeyHex) {
|
|
|
2108
2125
|
return false;
|
|
2109
2126
|
}
|
|
2110
2127
|
const recovered = secp256k1.secp256k1.Signature.fromCompact(sigBytes.slice(0, 64)).addRecoveryBit(v).recoverPublicKey(prehash).toHex(false);
|
|
2111
|
-
|
|
2112
|
-
return recovered.toLowerCase() === endorsed.toLowerCase();
|
|
2128
|
+
return recovered.toLowerCase() === utils$1.bytesToHex(endorsed).toLowerCase();
|
|
2113
2129
|
} catch {
|
|
2114
2130
|
return false;
|
|
2115
2131
|
}
|