Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump @metamask/browser-passworder from 3.0.0 to 4.0.2 #996

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/snaps-controllers/package.json
Expand Up @@ -31,7 +31,7 @@
"publish:package": "../../scripts/publish-package.sh"
},
"dependencies": {
"@metamask/browser-passworder": "^3.0.0",
"@metamask/browser-passworder": "^4.0.2",
"@metamask/controllers": "^32.0.2",
"@metamask/object-multiplex": "^1.1.0",
"@metamask/post-message-stream": "^6.0.0",
Expand Down
22 changes: 6 additions & 16 deletions packages/snaps-controllers/src/snaps/SnapController.test.ts
@@ -1,4 +1,4 @@
import passworder from '@metamask/browser-passworder';
import { encrypt } from '@metamask/browser-passworder';
import {
Caveat,
getPersistentState,
Expand Down Expand Up @@ -100,9 +100,7 @@ describe('SnapController', () => {
expect(
// @ts-expect-error Accessing private property
snapController.snapsRuntimeData.get(MOCK_SNAP_ID).state,
).toStrictEqual(
await passworder.encrypt(`stateEncryption:${MOCK_SNAP_ID}`, state),
);
).toStrictEqual(await encrypt(`stateEncryption:${MOCK_SNAP_ID}`, state));
snapController.destroy();
await service.terminateAllSnaps();
});
Expand Down Expand Up @@ -3492,10 +3490,7 @@ describe('SnapController', () => {
const state = {
fizz: 'buzz',
};
const encrypted = await passworder.encrypt(
`stateEncryption:${MOCK_SNAP_ID}`,
state,
);
const encrypted = await encrypt(`stateEncryption:${MOCK_SNAP_ID}`, state);
const snapController = getSnapController(
getSnapControllerOptions({
messenger,
Expand Down Expand Up @@ -3603,9 +3598,7 @@ describe('SnapController', () => {
expect(
// @ts-expect-error Accessing private property
snapController.snapsRuntimeData.get(MOCK_SNAP_ID).state,
).toStrictEqual(
await passworder.encrypt(`stateEncryption:${MOCK_SNAP_ID}`, state),
);
).toStrictEqual(await encrypt(`stateEncryption:${MOCK_SNAP_ID}`, state));
});

it('has different encryption for the same data stored by two different snaps', async () => {
Expand Down Expand Up @@ -3651,14 +3644,11 @@ describe('SnapController', () => {
snapController.snapsRuntimeData.get(MOCK_LOCAL_SNAP_ID).state;

expect(snapState1).toStrictEqual(
await passworder.encrypt(`stateEncryption:${MOCK_SNAP_ID}`, state),
await encrypt(`stateEncryption:${MOCK_SNAP_ID}`, state),
);

expect(snapState2).toStrictEqual(
await passworder.encrypt(
`stateEncryption:${MOCK_LOCAL_SNAP_ID}`,
state,
),
await encrypt(`stateEncryption:${MOCK_LOCAL_SNAP_ID}`, state),
);

expect(snapState1).not.toStrictEqual(snapState2);
Expand Down
10 changes: 7 additions & 3 deletions packages/snaps-controllers/src/snaps/SnapController.ts
@@ -1,4 +1,4 @@
import passworder from '@metamask/browser-passworder';
import { encrypt, decrypt } from '@metamask/browser-passworder';
import {
AddApprovalRequest,
BaseControllerV2 as BaseController,
Expand Down Expand Up @@ -64,6 +64,7 @@ import {
hasProperty,
inMilliseconds,
isNonEmptyArray,
isValidJson,
Json,
timeSince,
} from '@metamask/utils';
Expand Down Expand Up @@ -1358,13 +1359,16 @@ export class SnapController extends BaseController<

async #encryptSnapState(snapId: SnapId, state: Json): Promise<string> {
const appKey = await this.#getEncryptionKey(snapId);
return passworder.encrypt(appKey, state);
return encrypt(appKey, state);
}

async #decryptSnapState(snapId: SnapId, encrypted: string): Promise<Json> {
const appKey = await this.#getEncryptionKey(snapId);
try {
return await passworder.decrypt(appKey, encrypted);
const value = await decrypt(appKey, encrypted);

assert(isValidJson(value));
return value;
} catch (error) {
throw new Error(
'Failed to decrypt snap state, the state must be corrupted.',
Expand Down
10 changes: 5 additions & 5 deletions yarn.lock
Expand Up @@ -2613,10 +2613,10 @@ __metadata:
languageName: node
linkType: hard

"@metamask/browser-passworder@npm:^3.0.0":
version: 3.0.0
resolution: "@metamask/browser-passworder@npm:3.0.0"
checksum: 2eccb399341b377b60b544bce758a597c77518983ef13bed50ca795e0053ab883570de884fcba8782a1edc8541b0e03d1124b4097e0bad5d70544e28e320685c
"@metamask/browser-passworder@npm:^4.0.2":
version: 4.0.2
resolution: "@metamask/browser-passworder@npm:4.0.2"
checksum: 997c330b1c72f7135d0fd2a7f4b0dce37b3c2e6b30e92f048fa8d4f8c949f5b669dcc3064790f41df30ee2e53a9e64a812df72e00527736be704cce2cf4f6e49
languageName: node
linkType: hard

Expand Down Expand Up @@ -3012,7 +3012,7 @@ __metadata:
dependencies:
"@lavamoat/allow-scripts": ^2.0.3
"@metamask/auto-changelog": ^2.6.0
"@metamask/browser-passworder": ^3.0.0
"@metamask/browser-passworder": ^4.0.2
"@metamask/controllers": ^32.0.2
"@metamask/eslint-config": ^11.0.0
"@metamask/eslint-config-jest": ^11.0.0
Expand Down