Changeset View
Changeset View
Standalone View
Standalone View
web/selectors/socket-selectors.js
// @flow | // @flow | ||||
import olm from '@matrix-org/olm'; | import olm from '@matrix-org/olm'; | ||||
import { createSelector } from 'reselect'; | import { createSelector } from 'reselect'; | ||||
import { | import { | ||||
getClientResponsesSelector, | getClientResponsesSelector, | ||||
sessionStateFuncSelector, | sessionStateFuncSelector, | ||||
} from 'lib/selectors/socket-selectors.js'; | } from 'lib/selectors/socket-selectors.js'; | ||||
import { createOpenSocketFunction } from 'lib/shared/socket-utils.js'; | import { createOpenSocketFunction } from 'lib/shared/socket-utils.js'; | ||||
import type { | import type { | ||||
OLMIdentityKeys, | OLMIdentityKeys, | ||||
PickledOLMAccount, | PickledOLMAccount, | ||||
SignedIdentityKeysBlob, | SignedIdentityKeysBlob, | ||||
IdentityKeysBlob, | |||||
} from 'lib/types/crypto-types.js'; | } from 'lib/types/crypto-types.js'; | ||||
import type { | import type { | ||||
ClientServerRequest, | ClientServerRequest, | ||||
ClientClientResponse, | ClientClientResponse, | ||||
} from 'lib/types/request-types.js'; | } from 'lib/types/request-types.js'; | ||||
import type { | import type { | ||||
SessionIdentification, | SessionIdentification, | ||||
SessionState, | SessionState, | ||||
Show All 30 Lines | ) => { | ||||
} | } | ||||
const primaryOLMAccount = new olm.Account(); | const primaryOLMAccount = new olm.Account(); | ||||
primaryOLMAccount.unpickle( | primaryOLMAccount.unpickle( | ||||
primaryAccount.picklingKey, | primaryAccount.picklingKey, | ||||
primaryAccount.pickledAccount, | primaryAccount.pickledAccount, | ||||
); | ); | ||||
const payloadToBeSigned = JSON.stringify({ | const identityKeysBlob: IdentityKeysBlob = { | ||||
primaryIdentityKeys, | primaryIdentityPublicKeys: primaryIdentityKeys, | ||||
notificationIdentityKeys, | notificationIdentityPublicKeys: notificationIdentityKeys, | ||||
}); | }; | ||||
const payloadToBeSigned: string = JSON.stringify(identityKeysBlob); | |||||
const signedIdentityKeysBlob: SignedIdentityKeysBlob = { | const signedIdentityKeysBlob: SignedIdentityKeysBlob = { | ||||
payload: payloadToBeSigned, | payload: payloadToBeSigned, | ||||
signature: primaryOLMAccount.sign(payloadToBeSigned), | signature: primaryOLMAccount.sign(payloadToBeSigned), | ||||
}; | }; | ||||
return signedIdentityKeysBlob; | return signedIdentityKeysBlob; | ||||
}, | }, | ||||
); | ); | ||||
▲ Show 20 Lines • Show All 47 Lines • ▼ Show 20 Lines | ( | ||||
) => | ) => | ||||
() => | () => | ||||
sessionStateFunc(calendarActive), | sessionStateFunc(calendarActive), | ||||
); | ); | ||||
export { | export { | ||||
openSocketSelector, | openSocketSelector, | ||||
sessionIdentificationSelector, | sessionIdentificationSelector, | ||||
signedIdentityKeysBlobSelector, | |||||
webGetClientResponsesSelector, | webGetClientResponsesSelector, | ||||
webSessionStateFuncSelector, | webSessionStateFuncSelector, | ||||
}; | }; |