Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@signalapp/mock-server

Package Overview
Dependencies
Maintainers
6
Versions
115
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@signalapp/mock-server - npm Package Compare versions

Comparing version 5.0.1 to 5.1.0

6

certs/generate-zk-params.js
'use strict';
const fs = require('fs');
const { ServerSecretParams } = require('@signalapp/libsignal-client/zkgroup');
const { GenericServerSecretParams, ServerSecretParams } = require('@signalapp/libsignal-client/zkgroup');
const secretParams = ServerSecretParams.generate();
const publicParams = secretParams.getPublicParams();
const genericSecretParams = GenericServerSecretParams.generate();
const genericPublicParams = genericSecretParams.getPublicParams();

@@ -12,2 +14,4 @@ fs.writeFileSync(process.argv[2], JSON.stringify({

publicParams: publicParams.serialize().toString('base64'),
genericSecretParams: genericSecretParams.serialize().toString('base64'),
genericPublicParams: genericPublicParams.serialize().toString('base64'),
}, null, 2));

4

certs/zk-params.json
{
"secretParams": "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",
"publicParams": "AOSxRzRT1PJQyyheqbANW5d12WbqByrbGmpr8PDe7W0F/F0cJjEZ5kpF6+S4ckD9xFgpgiuS0IxukeIm0Ym3CC1SpadomNmrQS5HmJFlAO8bm4sWEUpNZ0n/QogAUjMGTExX083ifNlTJZtRhjSUCpslzxAVRzjZn3yxhx0qAPsGivI7u1cQL1mrtnl13ozCvgjKAziNULoY5UsHM9UBNiL2kkPxDYoOsrRKIRcs+uE5nP2zeG941I6EFRfOYscuEurANj9IYccavU/t4Tv7Tj5AsxxWviHp4LurAQnaXxpE8oyiKbduA88ZOZXJBiMZmHt9sgo+2gu5vI9Jx69u9GHyrUtTSaPd/TqKTtSqRojeFVDqrCiGhkjwO/hl8U6dGGzoN1VbcQUDrIgRTgpRIQ/ioKxr5gurN8hmCBqfqR8zZqYB9FjGFx8UB0HB2EnIUBOJCuyX+FrRxPSqveiqLxhuuS4NZ5+mIOAlIwe/cCCbjagnfcoNn07TomSAPkCJBViYpqnAgZ5X9CZ45dVsoepwiIX9pBmqIEiFcg6JUg8WRLakqKR4eAnQZIrSTpgL6cjDXiGFJO4Oz8PaEADSJjKsgSJWo3FeVoM4hnVpUfURFNU1gOJ93hGq1/bk6E+tdpjv89Wwt9jW5FSgUPP0J/MB6HK27CQQs2F7sZqJEKxaMDU1Ju2mW+PtaMf5P6Hlm3XwK+lMt0B/QVMPQxsmQGxa33dvjXWib+Yr610tYOKh/dNRGhJ9OwzxcN75XB9fC2A6TbjjPYYo4S6cFjh9ODc/HO9QTccy9JL0FEZZ+BYv5pjZBYqZrP6yDL8Wa1U49i/KPjJ7ln/avIFX8Y329n8="
"publicParams": "AOSxRzRT1PJQyyheqbANW5d12WbqByrbGmpr8PDe7W0F/F0cJjEZ5kpF6+S4ckD9xFgpgiuS0IxukeIm0Ym3CC1SpadomNmrQS5HmJFlAO8bm4sWEUpNZ0n/QogAUjMGTExX083ifNlTJZtRhjSUCpslzxAVRzjZn3yxhx0qAPsGivI7u1cQL1mrtnl13ozCvgjKAziNULoY5UsHM9UBNiL2kkPxDYoOsrRKIRcs+uE5nP2zeG941I6EFRfOYscuEurANj9IYccavU/t4Tv7Tj5AsxxWviHp4LurAQnaXxpE8oyiKbduA88ZOZXJBiMZmHt9sgo+2gu5vI9Jx69u9GHyrUtTSaPd/TqKTtSqRojeFVDqrCiGhkjwO/hl8U6dGGzoN1VbcQUDrIgRTgpRIQ/ioKxr5gurN8hmCBqfqR8zZqYB9FjGFx8UB0HB2EnIUBOJCuyX+FrRxPSqveiqLxhuuS4NZ5+mIOAlIwe/cCCbjagnfcoNn07TomSAPkCJBViYpqnAgZ5X9CZ45dVsoepwiIX9pBmqIEiFcg6JUg8WRLakqKR4eAnQZIrSTpgL6cjDXiGFJO4Oz8PaEADSJjKsgSJWo3FeVoM4hnVpUfURFNU1gOJ93hGq1/bk6E+tdpjv89Wwt9jW5FSgUPP0J/MB6HK27CQQs2F7sZqJEKxaMDU1Ju2mW+PtaMf5P6Hlm3XwK+lMt0B/QVMPQxsmQGxa33dvjXWib+Yr610tYOKh/dNRGhJ9OwzxcN75XB9fC2A6TbjjPYYo4S6cFjh9ODc/HO9QTccy9JL0FEZZ+BYv5pjZBYqZrP6yDL8Wa1U49i/KPjJ7ln/avIFX8Y329n8=",
"genericSecretParams": "AKnd87D82S7PKXWUNiKYcvJc48G1HOrUL9FQn/KwGkAIo3kBKqsCE5q6YWLMDXLG/1WpzZvOFRyBW64mnT/PCQ822DD3Eqr7kTr6/QzwR0VxDe6Tz71PJozxMJsOaYPhA0kowFcUQNXVwdDzlxQEePjST7Wug18cTjCGoGGaougNHVtW8T7sy115DnPjDv/VbXw3hvJJGtseAxcOOorPJgdj1mOz5o10fxlRMpqWVC0Ujn1KGSq/HyUOn0DsTgfdBHMlEcg0iwcdicyzZTmqWZqkM0j0GncKgh6yXLiM9UsOCGWtvpxNaveUWRUGBXHt0Q7Tf5Z54sixg7fgwjSKgQSPm+f5xA6ObSWeGTYI8PHCiopoIbeYk58DsxuzSufNDa/VN5BgsdnHdM//bHb/ETbJu5Z0G3p9tHbxYiWPBskOK/qNwyYrHcyWI06rK18lr77OLa2+lyr6urBy6WhBkwHhjfNwEfzJnoZitZV9UKDKFzov4FQXPMvkOC5aJQOqCg==",
"genericPublicParams": "ALx4aa+wNfOlEJq/lbaBDzHHQ7tc+3e4P8ivZhMgk+dODo3z9wnva35qdHRXSLER3t1jpHSIaU7b6yYkSl4MmANKjQKEq8Yg+CJlWvfAKPl9Fp8ItSrPPtSRDfAKrzEjHFTNC3sQOzU2bwjSKfCVCaYyAXJoOwoGqk0Ue0+XyidUaEgbiJYP+1KJn6QS3OVd5YVeSnyqeWMIg/n7pO6q836AVpWn/GsSy1Vsxrt5f2ISL5tx4UsMD2ExuRELY0duT8y1hOhSC9FhIYKjq02Mib45rtf/VBhG2hgSWwgmZ11B"
}
{
"name": "@signalapp/mock-server",
"version": "5.0.1",
"version": "5.1.0",
"description": "Mock Signal Server for writing tests",

@@ -5,0 +5,0 @@ "main": "src/index.js",

@@ -20,2 +20,4 @@ /// <reference types="node" />

publicParams: string;
genericSecretParams: string;
genericPublicParams: string;
}>;

@@ -22,0 +24,0 @@ export type Config = Readonly<{

@@ -68,2 +68,4 @@ "use strict";

this.zkSecret = new zkgroup_1.ServerSecretParams(zkSecret);
const genericSecret = Buffer.from(this.config.zkParams.genericSecretParams, 'base64');
this.genericServerSecret = new zkgroup_1.GenericServerSecretParams(genericSecret);
this.certificate = (0, crypto_1.generateServerCertificate)(this.trustRoot);

@@ -70,0 +72,0 @@ this.provisionQueue = this.createQueue();

export type Certificates = Readonly<{
certificateAuthority: string;
genericServerPublicParams: string;
serverPublicParams: string;

@@ -4,0 +5,0 @@ serverTrustRoot: string;

@@ -25,4 +25,5 @@ "use strict";

async function load() {
const [certificateAuthority, serverPublicParams, serverTrustRoot,] = await Promise.all([
const [certificateAuthority, genericServerPublicParams, serverPublicParams, serverTrustRoot,] = await Promise.all([
loadString('ca-cert.pem'),
loadJSONProperty('zk-params.json', 'genericPublicParams'),
loadJSONProperty('zk-params.json', 'publicParams'),

@@ -33,2 +34,3 @@ loadJSONProperty('trust-root.json', 'publicKey'),

certificateAuthority,
genericServerPublicParams,
serverPublicParams,

@@ -35,0 +37,0 @@ serverTrustRoot,

/// <reference types="node" />
import Long from 'long';
import { SenderCertificate } from '@signalapp/libsignal-client';
import { AuthCredentialPresentation, ProfileKeyCredentialRequest, ServerSecretParams } from '@signalapp/libsignal-client/zkgroup';
import { AuthCredentialPresentation, GenericServerSecretParams, ProfileKeyCredentialRequest, ServerSecretParams } from '@signalapp/libsignal-client/zkgroup';
import { signalservice as Proto } from '../../protos/compiled';

@@ -128,2 +128,3 @@ import { ServerCertificate } from '../crypto';

protected privZKSecret: ServerSecretParams | undefined;
protected privGenericServerSecret: GenericServerSecretParams | undefined;
generateAci(): Promise<AciString>;

@@ -180,2 +181,3 @@ generatePni(): Promise<PniString>;

verifyGroupCredentials(publicParams: Buffer, credential: Buffer): Promise<AuthCredentialPresentation>;
getCallLinkAuthCredentials({ aci }: Device, { from, to }: GroupCredentialsRange): Promise<GroupCredentials>;
issueExpiringProfileKeyCredential({ aci, profileKeyCommitment }: Device, request: ProfileKeyCredentialRequest): Promise<Buffer | undefined>;

@@ -186,2 +188,4 @@ abstract isUnregistered(serviceId: ServiceIdString): boolean;

protected get certificate(): ServerCertificate;
protected set genericServerSecret(value: GenericServerSecretParams);
protected get genericServerSecret(): GenericServerSecretParams;
protected set zkSecret(value: ServerSecretParams);

@@ -188,0 +192,0 @@ protected get zkSecret(): ServerSecretParams;

@@ -55,2 +55,3 @@ "use strict";

privZKSecret;
privGenericServerSecret;
//

@@ -671,2 +672,19 @@ // Service Ids

}
async getCallLinkAuthCredentials({ aci }, { from, to }) {
const today = (0, util_1.getTodayInSeconds)();
if (from > to ||
from < today ||
to > today + constants_1.DAY_IN_SECONDS * constants_1.MAX_GROUP_CREDENTIALS_DAYS) {
throw new Error('Invalid redemption range');
}
const result = [];
for (let redemptionTime = from; redemptionTime <= to; redemptionTime += constants_1.DAY_IN_SECONDS) {
result.push({
credential: zkgroup_1.CallLinkAuthCredentialResponse.issueCredential(libsignal_client_1.Aci.parseFromServiceIdString(aci), redemptionTime, this.genericServerSecret)
.serialize().toString('base64'),
redemptionTime,
});
}
return result;
}
async issueExpiringProfileKeyCredential({ aci, profileKeyCommitment }, request) {

@@ -695,2 +713,14 @@ if (!profileKeyCommitment) {

}
set genericServerSecret(value) {
if (this.privGenericServerSecret) {
throw new Error('zkgroup generic secret already set');
}
this.privGenericServerSecret = value;
}
get genericServerSecret() {
if (!this.privGenericServerSecret) {
throw new Error('zkgroup generic secret not set');
}
return this.privGenericServerSecret;
}
set zkSecret(value) {

@@ -697,0 +727,0 @@ if (this.privZKSecret) {

@@ -290,2 +290,6 @@ "use strict";

}),
callLinkAuthCredentials: await this.server.getCallLinkAuthCredentials(device, {
from: parseInt(from, 10),
to: parseInt(to, 10),
}),
pni: (0, types_1.untagPni)(device.pni),

@@ -292,0 +296,0 @@ },

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc