|
5 | 5 | IbeCiphertext, |
6 | 6 | MasterPublicKey, |
7 | 7 | MasterPublicKeyId, |
| 8 | + PocketIcMasterPublicKeyId, |
8 | 9 | IbeSeed, |
9 | 10 | TransportSecretKey, |
10 | 11 | VetKey, |
@@ -122,6 +123,64 @@ test("MasterPublicKey derivation using prod key", () => { |
122 | 123 | ); |
123 | 124 | }); |
124 | 125 |
|
| 126 | +test("MasterPublicKey derivation using PocketIC key_1", () => { |
| 127 | + const canisterId = hexToBytes("ffffffffff9000030101"); |
| 128 | + |
| 129 | + const masterKey = MasterPublicKey.pocketicKey( |
| 130 | + PocketIcMasterPublicKeyId.KEY_1, |
| 131 | + ); |
| 132 | + const canisterKey = masterKey.deriveCanisterKey(canisterId); |
| 133 | + |
| 134 | + const derivedKey = canisterKey.deriveSubKey( |
| 135 | + new TextEncoder().encode("Test Derivation For PocketIC VetKD key_1"), |
| 136 | + ); |
| 137 | + |
| 138 | + assertEqual( |
| 139 | + bytesToHex(derivedKey.publicKeyBytes()), |
| 140 | + "899a951f6ec2f9a96759c554a6cb01fb1cb20b2f2f96a2d2c869221c04d3349c3be8d49c3257312aed031f430f15f7ef0f4d43adf11251015d70dd91ac07df50fb70818ece721a1d6a314204acddde55542902f5d0d95e2406a5ab1fad18349d", |
| 141 | + ); |
| 142 | +}); |
| 143 | + |
| 144 | +test("MasterPublicKey derivation using PocketIC test_key_1", () => { |
| 145 | + const canisterId = hexToBytes("ffffffffff9000030101"); |
| 146 | + |
| 147 | + const masterKey = MasterPublicKey.pocketicKey( |
| 148 | + PocketIcMasterPublicKeyId.TEST_KEY_1, |
| 149 | + ); |
| 150 | + const canisterKey = masterKey.deriveCanisterKey(canisterId); |
| 151 | + |
| 152 | + const derivedKey = canisterKey.deriveSubKey( |
| 153 | + new TextEncoder().encode( |
| 154 | + "Test Derivation For PocketIC VetKD test_key_1", |
| 155 | + ), |
| 156 | + ); |
| 157 | + |
| 158 | + assertEqual( |
| 159 | + bytesToHex(derivedKey.publicKeyBytes()), |
| 160 | + "a60993fc46593728bd9b0a4ffb1fb9a662dd89b29c99fde36e403c311c8992e6eeb097b31174dd43f74e73fe10c190271193a4345490f64a41ce778a2f6e7c16804919e843ac72ff65bab959c53fa839c9fb3cb263e41498d17fb82704fe18bc", |
| 161 | + ); |
| 162 | +}); |
| 163 | + |
| 164 | +test("MasterPublicKey derivation using PocketIC dfx_test_key", () => { |
| 165 | + const canisterId = hexToBytes("ffffffffff9000030101"); |
| 166 | + |
| 167 | + const masterKey = MasterPublicKey.pocketicKey( |
| 168 | + PocketIcMasterPublicKeyId.DFX_TEST_KEY, |
| 169 | + ); |
| 170 | + const canisterKey = masterKey.deriveCanisterKey(canisterId); |
| 171 | + |
| 172 | + const derivedKey = canisterKey.deriveSubKey( |
| 173 | + new TextEncoder().encode( |
| 174 | + "Test Derivation For PocketIC VetKD dfx_test_key", |
| 175 | + ), |
| 176 | + ); |
| 177 | + |
| 178 | + assertEqual( |
| 179 | + bytesToHex(derivedKey.publicKeyBytes()), |
| 180 | + "800424bea66b95b715f86a9bed06b1f60df98206a57235c3e0f2da4d485dc1c93c56eef54155d559ef45c757fb0444920620b932652f1d683fdbc57db98b5aeb8ba664a5e040cbdf4d685e4e236a7193d1bd5b0927204fab05fff4f61f26b358", |
| 181 | + ); |
| 182 | +}); |
| 183 | + |
125 | 184 | test("DerivedPublicKey subderivation", () => { |
126 | 185 | const canisterKey = DerivedPublicKey.deserialize( |
127 | 186 | hexToBytes( |
|
0 commit comments