Skip to content
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.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/phone-number-privacy/combiner/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@celo/phone-number-privacy-combiner",
"version": "1.1.5-dev",
"version": "1.1.6-dev",
"description": "Orchestrates and combines threshold signatures for use in ODIS",
"author": "Celo",
"license": "Apache-2.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@ describe(`POST /getBlindedMessageSig endpoint`, () => {
blindedQueryPhoneNumber: BLINDED_PHONE_NUMBER,
hashedPhoneNumber: '0x5f6e88c3f724b3a09d3194c0514426494955eff7127c29654e48a361a19b4b96',
account: '0x78dc5D2D739606d31509C31d654056A45185ECb6',
timestamp: Date.now(),
}

beforeEach(() => {
Expand Down
2 changes: 1 addition & 1 deletion packages/phone-number-privacy/signer/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@celo/phone-number-privacy-signer",
"version": "1.1.8-dev",
"version": "1.1.9-dev",
"description": "Signing participator of ODIS",
"author": "Celo",
"license": "Apache-2.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@ import {
rootLogger as logger,
TestUtils,
} from '@celo/phone-number-privacy-common'
import { getBlindedPhoneNumber } from '@celo/phone-number-privacy-common/lib/test/utils'
import { PHONE_NUMBER } from '@celo/phone-number-privacy-common/lib/test/values'
import { serializeSignature, signMessage } from '@celo/utils/lib/signatureUtils'
import { randomBytes } from 'crypto'
import 'isomorphic-fetch'
import Web3 from 'web3'
import config from '../../src/config'
Expand Down Expand Up @@ -38,7 +41,16 @@ contractkit.addAccount(PRIVATE_KEY3)

jest.setTimeout(30000)

const getRandomBlindedPhoneNumber = () => {
return getBlindedPhoneNumber(PHONE_NUMBER, randomBytes(32))
}

describe('Running against a deployed service', () => {
beforeAll(() => {
console.log(DEFAULT_FORNO_URL)
console.log(ODIS_SIGNER)
})

describe('Returns status 400 with invalid input', () => {
it('With invalid address', async () => {
const response = await postToSignMessage(BLINDED_PHONE_NUMBER, '0x1234', Date.now(), 'ignore')
Expand Down Expand Up @@ -77,17 +89,17 @@ describe('Running against a deployed service', () => {
const signature = signMessage(JSON.stringify(body), PRIVATE_KEY2, ACCOUNT_ADDRESS2)
const authHeader = serializeSignature(signature)

const response = await postToSignMessage(BLINDED_PHONE_NUMBER, ACCOUNT_ADDRESS1, authHeader)
const response = await postToSignMessage(
BLINDED_PHONE_NUMBER,
ACCOUNT_ADDRESS1,
undefined,
authHeader
)
expect(response.status).toBe(401)
})

it('With missing blindedQueryPhoneNumber', async () => {
const response = await postToSignMessage('', ACCOUNT_ADDRESS1, Date.now())
expect(response.status).toBe(400)
})
})

it('Returns error when querying out of quota', async () => {
it('Returns 403 error when querying out of quota', async () => {
const response = await postToSignMessage(BLINDED_PHONE_NUMBER, ACCOUNT_ADDRESS1, Date.now())
expect(response.status).toBe(403)
})
Expand All @@ -111,33 +123,38 @@ describe('Running against a deployed service', () => {
})

// Backwards compatibility check
it('Returns sig when querying succeeds w/ timestamp', async () => {
it('Returns sig when querying succeeds w/ expired timestamp', async () => {
await replenishQuota(ACCOUNT_ADDRESS2, contractkit)
const response = await postToSignMessage(BLINDED_PHONE_NUMBER, ACCOUNT_ADDRESS2, Date.now())
const response = await postToSignMessage(
BLINDED_PHONE_NUMBER,
ACCOUNT_ADDRESS2,
Date.now() - 10 * 60 * 1000
) // 10 minutes ago
expect(response.status).toBe(200)
})

it('Increments query count when querying succeeds', async () => {
it('Increments query count when querying succeeds w/ unused request', async () => {
await replenishQuota(ACCOUNT_ADDRESS2, contractkit)
const initialQueryCount = await getQueryCount(ACCOUNT_ADDRESS2, IDENTIFIER)
await postToSignMessage(BLINDED_PHONE_NUMBER, ACCOUNT_ADDRESS2)
await postToSignMessage(getRandomBlindedPhoneNumber(), ACCOUNT_ADDRESS2)
expect(initialQueryCount).toEqual((await getQueryCount(ACCOUNT_ADDRESS2, IDENTIFIER)) - 1)
})

// Backwards compatibility check
it('Increments query count when querying succeeds w/ timestamp', async () => {
await replenishQuota(ACCOUNT_ADDRESS2, contractkit)
const initialQueryCount = await getQueryCount(ACCOUNT_ADDRESS2, IDENTIFIER)
await postToSignMessage(BLINDED_PHONE_NUMBER, ACCOUNT_ADDRESS2, Date.now())
await postToSignMessage(getRandomBlindedPhoneNumber(), ACCOUNT_ADDRESS2, Date.now())
expect(initialQueryCount).toEqual((await getQueryCount(ACCOUNT_ADDRESS2, IDENTIFIER)) - 1)
})

it('Returns sig when querying succeeds with replayed request without incrementing query count', async () => {
await replenishQuota(ACCOUNT_ADDRESS2, contractkit)
const res1 = await postToSignMessage(BLINDED_PHONE_NUMBER, ACCOUNT_ADDRESS2)
const blindedPhoneNumber = getRandomBlindedPhoneNumber()
const res1 = await postToSignMessage(blindedPhoneNumber, ACCOUNT_ADDRESS2)
expect(res1.status).toBe(200)
const queryCount = await getQueryCount(ACCOUNT_ADDRESS2, IDENTIFIER)
const res2 = await postToSignMessage(BLINDED_PHONE_NUMBER, ACCOUNT_ADDRESS2)
const res2 = await postToSignMessage(blindedPhoneNumber, ACCOUNT_ADDRESS2)
expect(res2.status).toBe(200)
expect(queryCount).toEqual(await getQueryCount(ACCOUNT_ADDRESS2, IDENTIFIER))
})
Expand Down Expand Up @@ -176,7 +193,7 @@ describe('Running against a deployed service', () => {

it('Returns sig when querying succeeds with unused request', async () => {
await replenishQuota(ACCOUNT_ADDRESS2, contractkit)
const response = await postToSignMessage(BLINDED_PHONE_NUMBER, ACCOUNT_ADDRESS3)
const response = await postToSignMessage(getRandomBlindedPhoneNumber(), ACCOUNT_ADDRESS3)
expect(response.status).toBe(200)
})

Expand Down