Skip to content

Commit

Permalink
refactor(credentials): add Res suffix to results
Browse files Browse the repository at this point in the history
  • Loading branch information
s1fr0 committed Feb 5, 2023
1 parent 8e96bce commit 1581e70
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 72 deletions.
94 changes: 47 additions & 47 deletions tests/v2/test_utils_credentials.nim
Original file line number Diff line number Diff line change
Expand Up @@ -18,26 +18,26 @@ procSuite "Credentials test suite":
let filepath = "./testAppKeystore.txt"
defer: removeFile(filepath)

let keystore = createAppKeystore(path = filepath,
application = "test",
appIdentifier = "1234",
version = "0.1")
let keystoreRes = createAppKeystore(path = filepath,
application = "test",
appIdentifier = "1234",
version = "0.1")

check:
keystore.isOk()
keystoreRes.isOk()

asyncTest "Load keystore":

let filepath = "./testAppKeystore.txt"
defer: removeFile(filepath)

let keystore = loadAppKeystore(path = filepath,
application = "test",
appIdentifier = "1234",
version = "0.1")
let keystoreRes = loadAppKeystore(path = filepath,
application = "test",
appIdentifier = "1234",
version = "0.1")

check:
keystore.isOk()
keystoreRes.isOk()

asyncTest "Add credentials to keystore":

Expand Down Expand Up @@ -76,15 +76,15 @@ procSuite "Credentials test suite":

let password = "%m0um0ucoW%"

let keystore = addMembershipCredentials(path = filepath,
credentials = @[membershipCredentials1, membershipCredentials2],
password = password,
application = "test",
appIdentifier = "1234",
version = "0.1")
let keystoreRes = addMembershipCredentials(path = filepath,
credentials = @[membershipCredentials1, membershipCredentials2],
password = password,
application = "test",
appIdentifier = "1234",
version = "0.1")

check:
keystore.isOk()
keystoreRes.isOk()

asyncTest "Add/retrieve credentials in keystore":

Expand Down Expand Up @@ -132,15 +132,15 @@ procSuite "Credentials test suite":
let password = "%m0um0ucoW%"

# We add credentials to the keystore. Note that only 3 credentials should be effectively added, since rlnMembershipCredentials3 is equal to membershipCredentials2
let keystore = addMembershipCredentials(path = filepath,
credentials = @[membershipCredentials1, membershipCredentials2, membershipCredentials3, membershipCredentials4],
password = password,
application = "test",
appIdentifier = "1234",
version = "0.1")
let keystoreRes = addMembershipCredentials(path = filepath,
credentials = @[membershipCredentials1, membershipCredentials2, membershipCredentials3, membershipCredentials4],
password = password,
application = "test",
appIdentifier = "1234",
version = "0.1")

check:
keystore.isOk()
keystoreRes.isOk()

# We test retrieval of credentials.
var expectedMembershipGroups1 = @[membershipGroup1, membershipGroup2]
Expand All @@ -156,38 +156,38 @@ procSuite "Credentials test suite":


# We retrieve all credentials stored under password (no filter)
var recoveredCredentials = getMembershipCredentials(path = filepath,
password = password,
application = "test",
appIdentifier = "1234",
version = "0.1")
var recoveredCredentialsRes = getMembershipCredentials(path = filepath,
password = password,
application = "test",
appIdentifier = "1234",
version = "0.1")

check:
recoveredCredentials.isOk()
recoveredCredentials.get() == @[expectedCredential1, expectedCredential2]
recoveredCredentialsRes.isOk()
recoveredCredentialsRes.get() == @[expectedCredential1, expectedCredential2]


# We retrieve credentials by filtering on an IdentityCredential
recoveredCredentials = getMembershipCredentials(path = filepath,
password = password,
filterIdentityCredentials = @[idCredential1],
application = "test",
appIdentifier = "1234",
version = "0.1")
recoveredCredentialsRes = getMembershipCredentials(path = filepath,
password = password,
filterIdentityCredentials = @[idCredential1],
application = "test",
appIdentifier = "1234",
version = "0.1")

check:
recoveredCredentials.isOk()
recoveredCredentials.get() == @[expectedCredential1]
recoveredCredentialsRes.isOk()
recoveredCredentialsRes.get() == @[expectedCredential1]

# We retrieve credentials by filtering on multiple IdentityCredentials
recoveredCredentials = getMembershipCredentials(path = filepath,
password = password,
filterIdentityCredentials = @[idCredential1, idCredential2],
application = "test",
appIdentifier = "1234",
version = "0.1")
recoveredCredentialsRes = getMembershipCredentials(path = filepath,
password = password,
filterIdentityCredentials = @[idCredential1, idCredential2],
application = "test",
appIdentifier = "1234",
version = "0.1")

check:
recoveredCredentials.isOk()
recoveredCredentials.get() == @[expectedCredential1, expectedCredential2]
recoveredCredentialsRes.isOk()
recoveredCredentialsRes.get() == @[expectedCredential1, expectedCredential2]

50 changes: 25 additions & 25 deletions waku/v2/utils/credentials.nim
Original file line number Diff line number Diff line change
Expand Up @@ -196,13 +196,13 @@ proc addMembershipCredentials*(path: string,

# We load the keystore corresponding to the desired parameters
# This call ensures that JSON has all required fields
let jsonKeystoreOpt = loadAppKeystore(path, application, appIdentifier, version, separator)
let jsonKeystoreRes = loadAppKeystore(path, application, appIdentifier, version, separator)

if jsonKeystoreOpt.isErr():
if jsonKeystoreRes.isErr():
return err(LoadKeystoreError)

# We load the JSON node corresponding to the app keystore
var jsonKeystore = jsonKeystoreOpt.get()
var jsonKeystore = jsonKeystoreRes.get()

try:

Expand All @@ -219,14 +219,14 @@ proc addMembershipCredentials*(path: string,

for keystoreCredential in keystoreCredentials.mitems():
# keystoreCredential is encrypted. We decrypt it
let decodedKeyfile = decodeKeyFileJson(keystoreCredential, password)
if decodedKeyfile.isOk():
let decodedKeyfileRes = decodeKeyFileJson(keystoreCredential, password)
if decodedKeyfileRes.isOk():

# we parse the json decrypted keystoreCredential
let decodedCredential = decode(decodedKeyfile.get())
let decodedCredentialRes = decode(decodedKeyfileRes.get())

if decodedCredential.isOk():
let keyfileMembershipCredential = decodedCredential.get()
if decodedCredentialRes.isOk():
let keyfileMembershipCredential = decodedCredentialRes.get()

# We check if the decrypted credential has its identityCredential field equal to the input credential
if keyfileMembershipCredential.identityCredential == membershipCredential.identityCredential:
Expand All @@ -241,12 +241,12 @@ proc addMembershipCredentials*(path: string,

# we re-encrypt creating a new keyfile
let encodedUpdatedCredential = updatedCredential.encode()
let updatedCredentialKeyfile = createKeyFileJson(encodedUpdatedCredential, password)
if updatedCredentialKeyfile.isErr():
let updatedCredentialKeyfileRes = createKeyFileJson(encodedUpdatedCredential, password)
if updatedCredentialKeyfileRes.isErr():
return err(CreateKeyfileError)

# we update the original credential field in keystoreCredentials
keystoreCredential = updatedCredentialKeyfile.get()
keystoreCredential = updatedCredentialKeyfileRes.get()

found = true

Expand All @@ -257,12 +257,12 @@ proc addMembershipCredentials*(path: string,
if found == false:

let encodedMembershipCredential = membershipCredential.encode()
let keyfile = createKeyFileJson(encodedMembershipCredential, password)
if keyfile.isErr():
let keyfileRes = createKeyFileJson(encodedMembershipCredential, password)
if keyfileRes.isErr():
return err(CreateKeyfileError)

# We add it to the credentials field of the keystore
jsonKeystore["credentials"].add(keyfile.get())
jsonKeystore["credentials"].add(keyfileRes.get())

except:
return err(JsonError)
Expand Down Expand Up @@ -357,13 +357,13 @@ proc getMembershipCredentials*(path: string,

# We load the keystore corresponding to the desired parameters
# This call ensures that JSON has all required fields
let jsonKeystoreOpt = loadAppKeystore(path, application, appIdentifier, version)
let jsonKeystoreRes = loadAppKeystore(path, application, appIdentifier, version)

if jsonKeystoreOpt.isErr():
if jsonKeystoreRes.isErr():
return err(LoadKeystoreError)

# We load the JSON node corresponding to the app keystore
var jsonKeystore = jsonKeystoreOpt.get()
var jsonKeystore = jsonKeystoreRes.get()

try:

Expand All @@ -375,18 +375,18 @@ proc getMembershipCredentials*(path: string,
for keystoreCredential in keystoreCredentials.mitems():

# keystoreCredential is encrypted. We decrypt it
let decodedKeyfile = decodeKeyFileJson(keystoreCredential, password)
if decodedKeyfile.isOk():
let decodedKeyfileRes = decodeKeyFileJson(keystoreCredential, password)
if decodedKeyfileRes.isOk():
# we parse the json decrypted keystoreCredential
let decodedCredential = decode(decodedKeyfile.get())
let decodedCredentialRes = decode(decodedKeyfileRes.get())

if decodedCredential.isOk():
let keyfileMembershipCredential = decodedCredential.get()
if decodedCredentialRes.isOk():
let keyfileMembershipCredential = decodedCredentialRes.get()

let filteredCredential = filterCredential(keyfileMembershipCredential, filterIdentityCredentials, filterMembershipContracts)
let filteredCredentialOpt = filterCredential(keyfileMembershipCredential, filterIdentityCredentials, filterMembershipContracts)

if filteredCredential.isSome():
outputMembershipCredentials.add(filteredCredential.get())
if filteredCredentialOpt.isSome():
outputMembershipCredentials.add(filteredCredentialOpt.get())

except:
return err(JsonError)
Expand Down

0 comments on commit 1581e70

Please sign in to comment.