diff --git a/tests/anonymous-credentials/presentation-circom.spec.ts b/tests/anonymous-credentials/presentation-circom.spec.ts index 43bad9f6..9fe30e56 100644 --- a/tests/anonymous-credentials/presentation-circom.spec.ts +++ b/tests/anonymous-credentials/presentation-circom.spec.ts @@ -10,9 +10,9 @@ import { SUBJECT_STR } from '../../src'; import { Credential, CredentialBuilder, PresentationBuilder, PublicKey, Scheme, SecretKey } from '../scheme'; +import { checkResult, getWasmBytes, parseR1CSFile } from '../utils'; import { checkPresentationJson, getExampleSchema, getKeys, verifyCred } from './utils'; -import { checkResult, getWasmBytes, parseR1CSFile } from '../utils'; describe.each([true, false])( `${Scheme} Presentation creation and verification with Circom predicates with withSchemaRef=%s`, diff --git a/tests/anonymous-credentials/presentation.spec.ts b/tests/anonymous-credentials/presentation.spec.ts index f6c68512..c8ba0cfa 100644 --- a/tests/anonymous-credentials/presentation.spec.ts +++ b/tests/anonymous-credentials/presentation.spec.ts @@ -1,22 +1,30 @@ +import { generateRandomFieldElement } from 'crypto-wasm-new'; import { - initializeWasm, AccumulatorPublicKey, + AccumulatorSecretKey, + BoundCheckBppParams, + BoundCheckBppParamsUncompressed, + BoundCheckParamType, + BoundCheckProtocol, + BoundCheckSmcParams, + BoundCheckSmcParamsUncompressed, + BoundCheckSmcWithKVProverParamsUncompressed, + BoundCheckSmcWithKVSetup, + BoundCheckSmcWithKVVerifierParamsUncompressed, CredentialSchema, - dockAccumulatorParams, + DefaultSchemaParsingOpts, dockSaverEncryptionGens, + InequalityProtocol, + initializeWasm, LegoProvingKeyUncompressed, LegoVerifyingKeyUncompressed, + MEM_CHECK_KV_STR, MEM_CHECK_STR, - VBMembershipWitness, + META_SCHEMA_STR, PositiveAccumulator, Pseudonym, PseudonymBases, randomFieldElement, - REV_ID_STR, - STATUS_STR, - VB_ACCUMULATOR_22, - SUBJECT_STR, - TYPE_STR, SaverChunkedCommitmentKey, SaverDecryptionKeyUncompressed, SaverDecryptor, @@ -24,20 +32,13 @@ import { SaverProvingKeyUncompressed, SaverSecretKey, SaverVerifyingKeyUncompressed, - BoundCheckProtocol, - VerifiableEncryptionProtocol, - BoundCheckBppParamsUncompressed, - BoundCheckSmcParamsUncompressed, - BoundCheckBppParams, - BoundCheckSmcParams, - BoundCheckSmcWithKVProverParamsUncompressed, - BoundCheckSmcWithKVVerifierParamsUncompressed, - BoundCheckSmcWithKVSetup, - META_SCHEMA_STR, - DefaultSchemaParsingOpts, - InequalityProtocol, BoundCheckParamType, AccumulatorSecretKey, MEM_CHECK_KV_STR + SUBJECT_STR, + TYPE_STR, + VB_ACCUMULATOR_22, + VBMembershipWitness, + VerifiableEncryptionProtocol } from '../../src'; -import { generateRandomFieldElement } from 'crypto-wasm-new'; +import { Credential, CredentialBuilder, isKvac, PresentationBuilder, PublicKey, Scheme, SecretKey } from '../scheme'; import { areUint8ArraysEqual, checkResult, @@ -45,24 +46,17 @@ import { readByteArrayFromFile, stringToBytes } from '../utils'; -import { InMemoryState } from '../../src/accumulator/in-memory-persistence'; import { checkCiphertext, checkPresentationJson, checkSchemaFromJson, getDecodedBoundedPseudonym, getExampleBuilder, - getExampleSchema, getKeys, - prefillAccumulator, setupPrefilledAccum, verifyCred + getExampleSchema, + getKeys, + setupPrefilledAccum, + verifyCred } from './utils'; -import { - Credential, - CredentialBuilder, - PresentationBuilder, - Scheme, - PublicKey, - SecretKey, isKvac -} from '../scheme'; // Setting it to false will make the test run the SNARK setups making tests quite slow const loadSnarkSetupFromFiles = true; diff --git a/tests/anonymous-credentials/serialized-objects/bbs+-circom-presentation1-0.5.0.json b/tests/anonymous-credentials/serialized-objects/bbs+-circom-presentation1-0.5.0.json new file mode 100644 index 00000000..10733e33 --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/bbs+-circom-presentation1-0.5.0.json @@ -0,0 +1 @@ +{"version":"0.5.0","nonce":null,"spec":{"credentials":[{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22education%22%3A%7B%22properties%22%3A%7B%22grade%22%3A%7B%22type%22%3A%22string%22%7D%2C%22score1%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score2%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score3%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John"}},"circomPredicates":[{"privateVars":[{"varName":"x","attributeName":{"credentialSubject":{"education":{"grade":null}}}}],"publicVars":[{"varName":"set","value":["7Jjyu46Z91jBSubPtv8jtRmkJdUSvYSMG94sHVD9AfMP","4efTvLXrzMGRJmq3Qj51NYKfhH28tPAqXEfgVUeLPv2w","8RvzAng4VQyWQ6S43RbGtRiLmojjF11rnp61yR1Hpzyu","4QpHmecK8KHacS8ZBASweXV98zqzLiozDA7d4MVn6rWr","6au7i34j8TGJUBm24FzRZ9a6JyAWTp2yjdMXZ3szPjZs"]}],"circuitId":"random2","snarkKeyId":"random1","protocol":"LegoGroth16"}],"sigType":"Bls12381BBS+SignatureDock2022"}],"attributeEqualities":[],"boundedPseudonyms":{},"unboundedPseudonyms":{}},"proof":"5RgSr2bgDUR25ze7bgfga7mKBK8PrmWy1nqexpgvwTvTy7bnQrD63a6ahe575g26MsuawKrF8Gw9WXNZA9EEFA3gR95NxRTcNaBvajuNyXWkH48SiLqD8NeWiWLiMurLyNP6QQVQMYvkeLdbVLvVg1koL5Are2jRybzDEYY2Fv5kC8LCfQFbckM9ELQMHFB2dKsNxipcU67NXbWfWycyVhh1sLYupUPjX35qcgyy9ZEZcdAk3QvGdeo43edJPUE4Wsr1VEr6xRYT1Y44Tkd51SCNDrDLskLEx9NPnqpQ56bxjzzWJwfQQYNh3s1ABbyVst8veQrigsnpScTVzhim9K6hCXmwkSe4sW3cnixHP3f7buzmtkckvKuirQEpkQr8B5nGUXLQ2vv1sAV1oSntBJNvfovVzX1ZMP8rR8EW3TE3RmMoFWLg6JkxMn7dLxcoazeoRxCCpkYCypbXKLTERgjmkZu7iNGZfPgHJbxuQt23HwUThWtrGHmfN6FFNiN61eKcWutNwu2RYLNVdG7GgR9fq8asRdjZtQEJ6k4prMUhVVqqvgwv2B5dF6KsHUHM2nfqWYUEFECFVryKMjKDncBab4CZT4GH81PsAAdrQXYUq9x37rSqsYaV5Dr3kY5Xve1X5cFfwHc1DwjLP9ZvG91fcDSqKQfwev1iayQQt1NWNfPo6pGzSaPgVoEjy2ZuFeNk3oBtRhJPSLEdDsBZB4P3k8YZEtpob9AiyU3KMa3Bc1N3b9Pt3fyFoHKj1tFNBwxo71GmJdSLwnGPNJKy3QYx8sCkaxSSN4qH2AVjrw6LTbmHH9kw3vyNwhCqytmigfSTiwFosPtV3tYZx1jghgN2wRXDr1rhubCWuzJsyTWNDjWJrkNLs5HrhzLyVVFXp1t18pY9t6ZMSr4TzkftKzNUfSSBgSCje5rurSc5jxwMAjUQBZHST9G1B1QGZcXuAaL9SHDNFJwfwdryNcfiRHJeTVU3H1RtmiJKqHWT6u3ZjfMSczREy5qVEbtp8PwChzpDWV4jbpEhXo7dq2ULBMiRFMjiptNEdJ1DVih36QX9rEzZM2kTVap5E9TvHudUXyhuocoU2br5RLRDspbFgkyU3pDWa9yXMypvmr3fiGXRjXUqzyeguJyVw9KuwHvyHvmRFW2cQ3ovRb2uJ4x7cwqvN9uoy756wsnEq9svi3FxigPoVByfdhErqpSwaV268DamnEepyhFU6qmc9joYhK6AaufiW21tDgsXEwPmEQ2SfNivaYJexKSvxwUMd4MeAgtUkc349uP9wB1xk3UANtVCckFk6ytAWKgJsJcqCUqsCHi5TV9XZLbGZ3oZBujmpfyBVU85cT5fmrcck"} \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/bbs+-circom-presentation1-0.6.0.json b/tests/anonymous-credentials/serialized-objects/bbs+-circom-presentation1-0.6.0.json new file mode 100644 index 00000000..93020131 --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/bbs+-circom-presentation1-0.6.0.json @@ -0,0 +1 @@ +{"version":"0.6.0","nonce":null,"spec":{"credentials":[{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22education%22%3A%7B%22properties%22%3A%7B%22grade%22%3A%7B%22type%22%3A%22string%22%7D%2C%22score1%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score2%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score3%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John"}},"circomPredicates":[{"privateVars":[{"varName":"x","attributeName":{"credentialSubject":{"education":{"grade":null}}}}],"publicVars":[{"varName":"set","value":["7Jjyu46Z91jBSubPtv8jtRmkJdUSvYSMG94sHVD9AfMP","4efTvLXrzMGRJmq3Qj51NYKfhH28tPAqXEfgVUeLPv2w","8RvzAng4VQyWQ6S43RbGtRiLmojjF11rnp61yR1Hpzyu","4QpHmecK8KHacS8ZBASweXV98zqzLiozDA7d4MVn6rWr","6au7i34j8TGJUBm24FzRZ9a6JyAWTp2yjdMXZ3szPjZs"]}],"circuitId":"random2","snarkKeyId":"random1","protocol":"LegoGroth16"}],"sigType":"Bls12381BBS+SignatureDock2022"}],"attributeEqualities":[],"boundedPseudonyms":{},"unboundedPseudonyms":{}},"proof":"2MmjucpYRY7q9uTpcJ1UsXVu3oKZeX4HQv1t1SoAGSZ6CB6Qa2U4VCWyKrXCXLiktqBaDwJVd1ekpd3hNJpFSokaLHKMwMCeYmKfzaHsQYfeJS1cZ4Po5AmVGFs2doTjmDFmQiVUwmcdCMBCGCSKiVjHgFvaXxfJnekGvqtHprgeeQ88PfKwSiJAksRShvXM1h6vbXigTcUz43k2qa1zYAPW3G9uFrWQdA7DkxusYtLPDgYeNr5YYCqg4zeRSNzrroQKRoyyB3iweNw6JtzWZH93okDkrLwKdKsBoqnmopeipKR8kGM5UDyoEapkjmri9i1ceFZMjAQqsDyy3pNfWJrHXkEWVVLyHY9C1d87grobfFo4sf2ggs1yc6jQKJf4bjzVbVvS357HYCZpQ93zsuK7tvEaSm6cxxYRUCiZdkva6iy1mhyxCoMG45UzuVk3GtT1sXTDAgrmyVmAUaBU8RMSyMqUgg4jt99rBcDnzxnUGHDbXBEjqRHkeZRQbSbNamUUYbwMtoZ5FJ49rzb4UqmJM9Rsorg4QtYKCEw3JDBFhv5pHgUwehP8DYvDgPUpqMWy45Gkbnvzpr25fkebqxrLVZa1u2gvCTMgV1V5pEcS8kX4SeRqFdkaw4FuWXt54te2C6Hy8HimjjXqwPFjxfpRzX11wAVrH8paFP3p1a5TpWa4QJNXZVnH1BELH1gsbtqCvJYV9diqbQtq1UHf1jEyDuGqZ5qUAx25UsP95WMCgL1GWkgMD9ykpoDZPTxchhhkg4ARRzFLNE6Rw8mfYgQeU8W34RXgewPLaJVBBYBH3F85UywG4UBXr1sGdKZwwmQVu95u7iELShpuM6shshFLCWDv6Pcx2hKXhxR5D2fV3kH5UKW96365VfqiHgpX9fUqjt1kd8hDTDGYohAwtU2wWjVRPVPGyTnBmqcQtujNgd6L7s6SajtUL5NfYXcJn7W6gQ7FnRoeRxhNSx4A8abuHc425Dm7Qc7aRUGAzr62WBSj1z3jfzjoadMUJaBHGBjXmtagA1N89UgvUc2yeLhs8zZojUQT3AmRMTaoLGTKyyJFvyHkfwbXJkxssxBySjBsNpF8AEEvceLAwMiJCtxnshmbzhar4wXQUrX7pUS3gvZkeHN6cjsdkjmc5DLHxwa92MPbw8LLd2G15V7yethpmicZfA3SdHAYaacEn9DgcyWEM9c61FTRbmqn47rZsH9fy1VbckXmAboQKsTYoZRcWxHCc8gi1fFUH29NsVPSGHbGoBb5YCJmfV8tKWZorcZjXEyvQxorfoS9MSDVyFJmJ3zGLvK8DvHnPZ3JwdXSAK6VLTVPBEJBEhudR6xwtVtBn"} \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/bbs+-circom-presentation2-0.5.0.json b/tests/anonymous-credentials/serialized-objects/bbs+-circom-presentation2-0.5.0.json new file mode 100644 index 00000000..2bc194fc --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/bbs+-circom-presentation2-0.5.0.json @@ -0,0 +1 @@ +{"version":"0.5.0","nonce":null,"spec":{"credentials":[{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22education%22%3A%7B%22properties%22%3A%7B%22grade%22%3A%7B%22type%22%3A%22string%22%7D%2C%22score1%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score2%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score3%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"Bob"}},"circomPredicates":[{"privateVars":[{"varName":"x","attributeName":{"credentialSubject":{"education":{"grade":null}}}}],"publicVars":[{"varName":"set","value":["7Jjyu46Z91jBSubPtv8jtRmkJdUSvYSMG94sHVD9AfMP","4efTvLXrzMGRJmq3Qj51NYKfhH28tPAqXEfgVUeLPv2w","8RvzAng4VQyWQ6S43RbGtRiLmojjF11rnp61yR1Hpzyu","4QpHmecK8KHacS8ZBASweXV98zqzLiozDA7d4MVn6rWr","6au7i34j8TGJUBm24FzRZ9a6JyAWTp2yjdMXZ3szPjZs"]}],"circuitId":"random2","snarkKeyId":"random1","protocol":"LegoGroth16"}],"sigType":"Bls12381BBS+SignatureDock2022"}],"attributeEqualities":[],"boundedPseudonyms":{},"unboundedPseudonyms":{}},"proof":"5RgSr2bgDUR28zvWA4wJSd8aQuAYxAzs2bftkq9TBrxWrnp9uGj3NXiXAR776WvuCzdsAe4ynhTHhG7R9zqZrG2rLkRuLrdY1ozEqdCs6BNA6fXF8T8GchSHDGheaGq4zYqsi7Ss43uHHyt8rKNusDjvAeDi3QufrY68FwYaELZEVavMs4iQyQeTTx5Gav8BXM4QEiHQtRQPc8HoUiLdWQr6r2io9dtHw9tM9eVGroEvuuKQHZzw8gGBFEd5aCvFm5RxjAaVbjFgT1ExeXZMaGAfgLaGhK9tE8kJ5LtpVVDWJKBDHa2X6f8NSS7MAbHhpb3Ls3DdWjnnwRdNhiyRWZ2pu9bD7BiGBCoxA6ao1KexWGh7n3nJ4m9pokHgadDXMj47AQu7KXqt2j1naW1AeSSd88RmZJGyTMYiCTZmGhM3nrhLwDpBcnNH2NdNnv2GHhy96pem2RKUiwaTqR33FoWcNF3JR1uMbHH6JYWGviBiJ6f7STTnLC3k8FVdMTqaaajU3GRuR42tLKUM1RP5j8tCL8JmpAvRxg9SBCUNxuwDj1vGgocdJoNuA5cieANaNoduwniZgnNHWETcdHjSbr8zNkwvWAjw4Dqw6AnZA5UJfLMeJxqno8fUJ2e9w2LeTJQ7mddDjmcF4JjZSvFhbjxiQ7bjz3gcYSmVHLtZnRQ95neYfK2tpDWYF428BZ1hupsgXXJpEh3PhUQSiLrDqGkJ6yVhyu7a8Mhhvi5y4ScrdpfeMpL8aTtgwB2VVPG9KPbnmxb3LGyd2Fr9BCoMzNjicCUzVMP9cVYNzyAVxurH31bPqaT3uh8SJr6rqfmPY77egLhvrjR1oBC9j8YtzkqcgwgX5AcEVJ7pTUzdU6Ew9MF7t4b5L4ggrWztd5K6rUK5Ktbkd5v48pVCPwTXDgUnznUsSsMkcQugL5Kikfvnpgjy4BAuDaAYeo8PvydrLeY8aQACLP2pHpY3q4tUig9WiFJKwa8FLopiC82P7kWaJiSK3rGtziSbbRYXycDfKjAEvRAC8tLVoLQBka9kfWX3tzP854zPrtDMXUWJGDK4QDZyEVZHeTQcaM47uYaqsG4gN5XymCaxQnoMPMU6X9LSrZeXEmjhv6jtY23gCRFfJeqGPVZbyJXieQVuAwQJAmRVoRkc2TXRDoPYPFcBjbfwRAptyPzZ7PP2uTRJqAecMQTuJWa32PzX7rhuj7SBh2ftt6PrixVejgn7VjVVnTQtC3cCff4Ps19fLbs5R6BptKo4hS2xVWp3umC9JykQHXJfkeEktPBccT572o1tu3oxc1z5SxU2JbCzETgHsaEvF5TGduLvcAdbb8wVpVFLmSQ4iqiPUmm5HC1KH"} \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/bbs+-circom-presentation2-0.6.0.json b/tests/anonymous-credentials/serialized-objects/bbs+-circom-presentation2-0.6.0.json new file mode 100644 index 00000000..7ede34bc --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/bbs+-circom-presentation2-0.6.0.json @@ -0,0 +1 @@ +{"version":"0.6.0","nonce":null,"spec":{"credentials":[{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22education%22%3A%7B%22properties%22%3A%7B%22grade%22%3A%7B%22type%22%3A%22string%22%7D%2C%22score1%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score2%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score3%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"Bob"}},"circomPredicates":[{"privateVars":[{"varName":"x","attributeName":{"credentialSubject":{"education":{"grade":null}}}}],"publicVars":[{"varName":"set","value":["7Jjyu46Z91jBSubPtv8jtRmkJdUSvYSMG94sHVD9AfMP","4efTvLXrzMGRJmq3Qj51NYKfhH28tPAqXEfgVUeLPv2w","8RvzAng4VQyWQ6S43RbGtRiLmojjF11rnp61yR1Hpzyu","4QpHmecK8KHacS8ZBASweXV98zqzLiozDA7d4MVn6rWr","6au7i34j8TGJUBm24FzRZ9a6JyAWTp2yjdMXZ3szPjZs"]}],"circuitId":"random2","snarkKeyId":"random1","protocol":"LegoGroth16"}],"sigType":"Bls12381BBS+SignatureDock2022"}],"attributeEqualities":[],"boundedPseudonyms":{},"unboundedPseudonyms":{}},"proof":"2MmjucpYRY7qApwwQ15jxw3Hsv47KJDeS2NJwmPw2NXcz9vk1rmcPeXPvNb6gmUaPCSc3ct4vsVxWoqYkJFnXg2oWvQzaGZ9PHq39uq32PgD2LNtD4WtLg6JWetZYPgDQiqDFZFhzmss2LbYzPvjC2cavgpA9sUUkt2HdmLFTn2fmriZGuVuFEDF7zB2FkbTfcEv8a6tkvXPv9x5MhaRL26A7K5KdsAd3UKq2wd7xq6KHZQGnSbsbsZsmXnA5wEbdRWwyp3qozKjb8fvnjRGHzLpn9ADXzxtHqWRpFnZrPFpm3AxaYSjaVYSys1mypEcYmM2uN4dnWb4wgxvdeGcGwzYQVXTe5YdHjM6QjsqzpeaCuU6FVnGG1PQFevEQ8mukZNxTBhXB2iDcMDZJhRuXwCW2nqL2EUAmrB3kcMbb5XLPTWnNp4gjMWVy4CZo9QKmxT3wLMGD5fqnb1jeNYMx6FSFwXqXxRAPSDWTwACHmeL2Px9snsC8MsqLvBEUy2bfM9V6J6k4N5RGHPrc9a4b9kBJN2mjdavJVSoM7eTXno9oW2xVMPx6HyZ8cBhkSLxQywRy8VJaVaDLCGkKUeSsGtE6a6YbvrTzmSLdegb3kfkAoq2eayN4susxT1Ekc6trMZoAwbSwnV7fDcPkgR4AS6nBgCaoR9KveEkzoa3KpRsmdvhFkYDzRg8s1N1R6MQeBoR6hWkN5FUMzX1v94JmRm8bpQBwTAt53RM2zKSM3YRWfrAkohG4hFHRgyeiDG9Q181LFpsQii9SKtC2a1Nv1xVhL6HfZc8HPJVzkPQEQ9YebW1sgfPaydZkGc2YZrgtN3wbrY3rWVrjFULcnJ4VixErpGcMeFq6XZ4uNazM6LeTggS44fkop2USSQPUi48YnbXA6ypzY3JAtUpGvtM1yEMoZEuP7EQwnZYpJJ2c57ywEki7s1W7JxeSCENAxf5FQT3hcC6fsC9sqT9HuMZT6RbefeuJZRoz3JMu1qbgWuNCp4M9ZCEAZF7xg5u4U7cHNELdY3TLXwkXkuBBsTSUn9shW1TgwAxNyFwuY1YnTKPhABV6nPTAkW8DhjfQNLSVVZ5H2ap7oeYCA3U3NYrwN62yhNaQwG22c7dVZGhQwUzwr87em2WSroatXcrMG1LrAneN37DpzZ5UqzGzQWKGqHoKxopGQP3FXtGRMypLQutCGdLPtKPbTMk5QPCVdKoXxoJkcgBsqALgEnz8nZFAUcvD9CVqddnr9fC2pAYwECz79JoYPST6ei5YuSoXuAVFjvq6UFQKoi3vLW3CfNhM5p8QF2sBviEm1xHdA3WTrVdZBmrzzX5q9ikjRVwQccCEfwq5"} \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/bbs+-presentation-0.5.0.json b/tests/anonymous-credentials/serialized-objects/bbs+-presentation-0.5.0.json new file mode 100644 index 00000000..fbc51579 --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/bbs+-presentation-0.5.0.json @@ -0,0 +1 @@ +{"version":"0.5.0","nonce":null,"spec":{"credentials":[{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22BMI%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.01%2C%22type%22%3A%22number%22%7D%2C%22SSN%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableString%22%7D%2C%22city%22%3A%7B%22type%22%3A%22string%22%7D%2C%22country%22%3A%7B%22type%22%3A%22string%22%7D%2C%22email%22%3A%7B%22type%22%3A%22string%22%7D%2C%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22height%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22score%22%3A%7B%22minimum%22%3A-100%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22secret%22%3A%7B%22type%22%3A%22string%22%7D%2C%22timeOfBirth%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22userId%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableCompString%22%7D%2C%22weight%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John","lname":"Smith"}},"bounds":{"credentialSubject":{"timeOfBirth":[{"min":1662010838000,"max":1662010856123,"paramId":"random","protocol":"LegoGroth16"}],"BMI":[{"min":10,"max":40,"paramId":"random","protocol":"LegoGroth16"}],"score":[{"min":-40.5,"max":60.7,"paramId":"random","protocol":"LegoGroth16"}]}},"verifiableEncryptions":{"credentialSubject":{"SSN":[{"chunkBitSize":16,"commitmentGensId":"random-1","encryptionKeyId":"random-2","snarkKeyId":"random-3","protocol":"SAVER"}]}},"sigType":"Bls12381BBS+SignatureDock2022"},{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22isbool%22%3A%7B%22type%22%3A%22boolean%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22location%22%3A%7B%22properties%22%3A%7B%22city%22%3A%7B%22type%22%3A%22string%22%7D%2C%22country%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22physical%22%3A%7B%22properties%22%3A%7B%22BMI%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.01%2C%22type%22%3A%22number%22%7D%2C%22height%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22weight%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22score%22%3A%7B%22minimum%22%3A-100%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22sensitive%22%3A%7B%22properties%22%3A%7B%22SSN%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableString%22%7D%2C%22email%22%3A%7B%22type%22%3A%22string%22%7D%2C%22secret%22%3A%7B%22type%22%3A%22string%22%7D%2C%22userId%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableCompString%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22timeOfBirth%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John","location":{"country":"USA"}}},"verifiableEncryptions":{"credentialSubject":{"sensitive":{"userId":[{"chunkBitSize":16,"commitmentGensId":"random-1","encryptionKeyId":"random-2","snarkKeyId":"random-3","protocol":"SAVER"}]}}},"sigType":"Bls12381BBS+SignatureDock2022"},{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialStatus%22%3A%7B%22properties%22%3A%7B%22id%22%3A%7B%22type%22%3A%22string%22%7D%2C%22revocationCheck%22%3A%7B%22type%22%3A%22string%22%7D%2C%22revocationId%22%3A%7B%22type%22%3A%22string%22%7D%2C%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22lessSensitive%22%3A%7B%22properties%22%3A%7B%22department%22%3A%7B%22properties%22%3A%7B%22location%22%3A%7B%22properties%22%3A%7B%22geo%22%3A%7B%22properties%22%3A%7B%22lat%22%3A%7B%22minimum%22%3A-90%2C%22multipleOf%22%3A0.001%2C%22type%22%3A%22number%22%7D%2C%22long%22%3A%7B%22minimum%22%3A-180%2C%22multipleOf%22%3A0.001%2C%22type%22%3A%22number%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22name%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22name%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22location%22%3A%7B%22properties%22%3A%7B%22city%22%3A%7B%22type%22%3A%22string%22%7D%2C%22country%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22rank%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22sensitive%22%3A%7B%22properties%22%3A%7B%22SSN%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableString%22%7D%2C%22email%22%3A%7B%22type%22%3A%22string%22%7D%2C%22phone%22%3A%7B%22type%22%3A%22string%22%7D%2C%22very%22%3A%7B%22properties%22%3A%7B%22secret%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John","lessSensitive":{"location":{"country":"USA"},"department":{"location":{"name":"Somewhere"}}}}},"status":{"id":"dock:accumulator:accumId123","type":"DockVBAccumulator2022","revocationCheck":"membership","accumulated":"5iYSR7j6eCT2nvmKMGE3f88CQ73crNhcesj1Nq6JwkqbvCzuyR9qNYWLpvyJU1h27d","extra":{"blockNo":2010334}},"bounds":{"credentialSubject":{"lessSensitive":{"department":{"location":{"geo":{"lat":[{"min":-30,"max":50,"paramId":"random","protocol":"LegoGroth16"}],"long":[{"min":-10,"max":85,"paramId":"random","protocol":"LegoGroth16"}]}}}}}},"sigType":"Bls12381BBS+SignatureDock2022"}],"attributeEqualities":[[[0,"credentialSubject.SSN"],[1,"credentialSubject.sensitive.SSN"],[2,"credentialSubject.sensitive.SSN"]],[[0,"credentialSubject.timeOfBirth"],[1,"credentialSubject.timeOfBirth"]],[[0,"credentialSubject.BMI"],[1,"credentialSubject.physical.BMI"]],[[0,"credentialSubject.score"],[1,"credentialSubject.score"]],[[0,"credentialSubject.userId"],[1,"credentialSubject.sensitive.userId"]]],"boundedPseudonyms":{},"unboundedPseudonyms":{}},"proof":"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","attributeCiphertexts":{"0":{"credentialSubject":{"SSN":["P1KrNqmcpHfh6YpcGUnuojwf5NSoqHfMNzDsFTUi3WH8YkHUTmRNjHQmsUnGaJNGssVJxCWsFAGdg3tydF9i4YzCnMwiw6pQ1Lj2rPYWMTJzYZNkDuyNZ5nFDXTUTcSUW8dUs8a1C6XdXLqqQXxCpY2KdMdi6JKjYQRBgHwpRxKQ9yweSNmymao59FoS2KanqKoiAvA4R9FfqTf9GuLotCR6bXoe7bCscj32wsJuNNhZstLo2d2S18eTQX1bN7nLDsUtyVMZq8dRXEpKJce85GhVf4br9989A7r2MLY6N2JFAe9REhiDsvkZhqf8KQUSaETn9bmWeJ3g9sjRfDR9NEiwfMeMpfR6hjftWtojrpBqfNN77tfo9DprWNWyvgoru6vgdVeT3NWv71U8MGtHECZqeCzEY8jhBxHabVvAU5FvY9kg8NhFjQSMd89mnQWAn8R4SA5ji2WAB4rUTDw9J15ZBKsyaDiFz4T7C9HzBDTAKQpDmJYU3qVp3nsJqMRN3t46eN7M6UxEzr38MQqCQAaQQdjgD79tAmimcfFdKa1bMuHbyHwXvE1R1hjQ9QsgEt9iiihvMCS5UJCTXNdaSUxNBtYwUHxFXsosk2qPY8hCAXCX48j8a3gDeCqcWbkhFy9Zhq6s83i3FxvB1krseehvuLPUPb1PRLJmdMGV9rH4HPp8Dg2MtboFbbTZ2BQkUarDQiQvotg5WpGMAjBWFKMXv2yh4oDmHFBGav8X921maH1Z5RHJerN3KDQLP4SQFs1Y6YkVwgYwz6oWufCnH1cwQTFifttci1FVpsYnuf7FyRAGMMBiNQtQT7Q8Sbraxjd82HUYGzfehvD78kvFFxAxddUmGRcXLQ1hgJaHs8QZurRbC35s3Sds31EyeicnjMEdmrysrDjKgGitvAz9q8c46RzSj27pfHMXHd9JzBZQTv7cVDCtFYaio43rqmWVDq24GxgU9jaZumhYxXPbc9tAAyygKJ1ytZk93eoMzxNcTNCMk9eiRzfvyV7kjnh6KDSRpMX2GZrZbxFYNpsXAqTViJxMXpRfsKadEVrPhEEycC7qesfxAi76Cu6PX1QqbTVjqTyELbcCCXtqb4TLRwrQx9Aj87FEeujgeyb5LsuCskzp7mKsiYGhCMq3NYb8jJ4bEmG3spdugfhTmLYgfLPmJvRA5pdXvvGgZUU"]}},"1":{"credentialSubject":{"sensitive":{"userId":["Ks6tRdetz9GxhneTw5zpp51r3DKeWX7312w7uS9n8rbwGMyTJvBWz8QdU7N9KpWbo2FuBtnCyZr6MEJ9k5MghRV2zzkht7pYEEwPPeHxcwPANEmt44bzjYNKEL29YNVxQB6YvQZvR1RcjcAfHBz6ss5q1QvQadGFkFPYauVYHadehaY139wUqycF5dgdownhEtUD8B6BB7vsHpusHksfZnJEeeEmhRwq1LW8iRqHtpsxtpKELFobHJFe8bf5tQoujs7dbzkRcWF28S7JpjmqmERFjwJjVhHcko7WQt5GN5ZPqrx48Hgp2QZm7kZrXgrtTNNuEpnrZ8UoRabXTYgENUrFuuKqHS5p171mgtbHJoyQTqiXGGC2sUjowCYJm6ktF9RG1fJW3n1xHavqNnYKT75dUqYvVuF9K4rSW2fey4DyLW3sWh78hw2s5mGrGqyZ4p668nsfauUy7zjNxrZw8hjyJZ9goB2GGHCeVAGzux3KULCpDnBeMrW5yeXRVzzHWBTxWtyEEzs23RQHAv4nhM7grxekvgprHkbmFTsXXmtkAYs1sXhFnXNLayqY3sz5WpA2wPHWSMo7bGTcxM6eE6c8eaPqHXBZ8eKHCSbumwypK13nGwvafsVivHxGnB3dDsBaid4TuipRjacmY5gTyWkE9ir6bMykP5ya17s9cZEjhEHYGynrAAvBruzvNb1bqsQ3aEGBxTmWTSGMpnBqDJNTE3PyQ2egrXgbcj2ex5fvkiQjmD4myBBx7X4UANeWapWGAngkKWUZPcUJresjfaMjrfjKPfRf7kXdXkH3Ks47nyHyVw6UGg1J7Vw86oMYmG3EZZHw1ghV67o4QMufbZP8tFcUpXNcQzhVBUsW9e2YT2NhkA1uiV4XXTkon31von6bTa4CBBBm56Xe4kdBirAN17cE86ELo9uCvUN3EmYoYRm8FMCYKRf2KC8LbFZ2EfHyqz1HQRGmnetToPMDCeK8HJHP7kuAsvnFrkrp8yYeMknbkhvf6s3qQxLHYiwTBT3rSZLuy26QMbxfhnSwi8LAC3DQZFu4TD1sVe9zo5qFDm7BtbxoaR8kczyAKst8WvPnFn14ouFQ9BGiuTHioVDeG8V7Gv5yRb9c6df91WnCWn7TgeJQ4Gbns4g82jd3SHrH2kb1SW6RyvSkAGjXXH2ZyBphrnGAYZhQWBJ"]}}}}} \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/bbs+-presentation-0.6.0.json b/tests/anonymous-credentials/serialized-objects/bbs+-presentation-0.6.0.json new file mode 100644 index 00000000..433eb01e --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/bbs+-presentation-0.6.0.json @@ -0,0 +1 @@ +{"version":"0.6.0","nonce":null,"spec":{"credentials":[{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22BMI%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.01%2C%22type%22%3A%22number%22%7D%2C%22SSN%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableString%22%7D%2C%22city%22%3A%7B%22type%22%3A%22string%22%7D%2C%22country%22%3A%7B%22type%22%3A%22string%22%7D%2C%22email%22%3A%7B%22type%22%3A%22string%22%7D%2C%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22height%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22score%22%3A%7B%22minimum%22%3A-100%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22secret%22%3A%7B%22type%22%3A%22string%22%7D%2C%22timeOfBirth%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22userId%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableCompString%22%7D%2C%22weight%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John","lname":"Smith"}},"bounds":{"credentialSubject":{"timeOfBirth":[{"min":1662010838000,"max":1662010856123,"paramId":"random","protocol":"LegoGroth16"}],"BMI":[{"min":10,"max":40,"paramId":"random","protocol":"LegoGroth16"}],"score":[{"min":-40.5,"max":60.7,"paramId":"random","protocol":"LegoGroth16"}]}},"verifiableEncryptions":{"credentialSubject":{"SSN":[{"chunkBitSize":16,"commitmentGensId":"random-1","encryptionKeyId":"random-2","snarkKeyId":"random-3","protocol":"SAVER"}]}},"sigType":"Bls12381BBS+SignatureDock2022"},{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22isbool%22%3A%7B%22type%22%3A%22boolean%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22location%22%3A%7B%22properties%22%3A%7B%22city%22%3A%7B%22type%22%3A%22string%22%7D%2C%22country%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22physical%22%3A%7B%22properties%22%3A%7B%22BMI%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.01%2C%22type%22%3A%22number%22%7D%2C%22height%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22weight%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22score%22%3A%7B%22minimum%22%3A-100%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22sensitive%22%3A%7B%22properties%22%3A%7B%22SSN%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableString%22%7D%2C%22email%22%3A%7B%22type%22%3A%22string%22%7D%2C%22secret%22%3A%7B%22type%22%3A%22string%22%7D%2C%22userId%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableCompString%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22timeOfBirth%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John","location":{"country":"USA"}}},"verifiableEncryptions":{"credentialSubject":{"sensitive":{"userId":[{"chunkBitSize":16,"commitmentGensId":"random-1","encryptionKeyId":"random-2","snarkKeyId":"random-3","protocol":"SAVER"}]}}},"sigType":"Bls12381BBS+SignatureDock2022"},{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialStatus%22%3A%7B%22properties%22%3A%7B%22id%22%3A%7B%22type%22%3A%22string%22%7D%2C%22revocationCheck%22%3A%7B%22type%22%3A%22string%22%7D%2C%22revocationId%22%3A%7B%22type%22%3A%22string%22%7D%2C%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22lessSensitive%22%3A%7B%22properties%22%3A%7B%22department%22%3A%7B%22properties%22%3A%7B%22location%22%3A%7B%22properties%22%3A%7B%22geo%22%3A%7B%22properties%22%3A%7B%22lat%22%3A%7B%22minimum%22%3A-90%2C%22multipleOf%22%3A0.001%2C%22type%22%3A%22number%22%7D%2C%22long%22%3A%7B%22minimum%22%3A-180%2C%22multipleOf%22%3A0.001%2C%22type%22%3A%22number%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22name%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22name%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22location%22%3A%7B%22properties%22%3A%7B%22city%22%3A%7B%22type%22%3A%22string%22%7D%2C%22country%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22rank%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22sensitive%22%3A%7B%22properties%22%3A%7B%22SSN%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableString%22%7D%2C%22email%22%3A%7B%22type%22%3A%22string%22%7D%2C%22phone%22%3A%7B%22type%22%3A%22string%22%7D%2C%22very%22%3A%7B%22properties%22%3A%7B%22secret%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John","lessSensitive":{"location":{"country":"USA"},"department":{"location":{"name":"Somewhere"}}}}},"status":{"id":"dock:accumulator:accumId123","type":"DockVBAccumulator2022","revocationCheck":"membership","accumulated":"5iYSR7j6eCT2nvmKMGE3f88CQ73crNhcesj1Nq6JwkqbvCzuyR9qNYWLpvyJU1h27d","extra":{"blockNo":2010334}},"bounds":{"credentialSubject":{"lessSensitive":{"department":{"location":{"geo":{"lat":[{"min":-30,"max":50,"paramId":"random","protocol":"LegoGroth16"}],"long":[{"min":-10,"max":85,"paramId":"random","protocol":"LegoGroth16"}]}}}}}},"sigType":"Bls12381BBS+SignatureDock2022"}],"attributeEqualities":[[[0,"credentialSubject.SSN"],[1,"credentialSubject.sensitive.SSN"],[2,"credentialSubject.sensitive.SSN"]],[[0,"credentialSubject.timeOfBirth"],[1,"credentialSubject.timeOfBirth"]],[[0,"credentialSubject.BMI"],[1,"credentialSubject.physical.BMI"]],[[0,"credentialSubject.score"],[1,"credentialSubject.score"]],[[0,"credentialSubject.userId"],[1,"credentialSubject.sensitive.userId"]]],"boundedPseudonyms":{},"unboundedPseudonyms":{}},"proof":"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","attributeCiphertexts":{"0":{"credentialSubject":{"SSN":["P1KrNqmcpHfh6YpcGUnuojwf5NSoqHfMNzDsFTUi3WH8YkHUTmRNjHQmsUnGaJNGssVJxCWsFAGdg3tydF9i4YzCnMwiw6pQ1Lj2rPYWMTJzYZNkDuyNZ5nFDXTUTcSUW8dUs8a1C6XdXLqqQXxCpY2KdMdi6JKjYQRBgHwpRxKQ9yweSNmymao59FoS2KanqKoiAvA4R9FfqTf9GuLotCR6bXoe7bCscj32wsJuNNhZstLo2d2S18eTQX1bN7nLDsUtyVMZq8dRXEpKJce85GhVf4br9989A7r2MLY6N2JFAe9REhiDsvkZhqf8KQUSaETn9bmWeJ3g9sjRfDR9NEiwfMeMpfR6hjftWtojrpBqfNN77tfo9DprWNWyvgoru6vgdVeT3NWv71U8MGtHECZqeCzEY8jhBxHabVvAU5FvY9kg8NhFjQSMd89mnQWAn8R4SA5ji2WAB4rUTDw9J15ZBKsyaDiFz4T7C9HzBDTAKQpDmJYU3qVp3nsJqMRN3t46eN7M6UxEzr38MQqCQAaQQdjgD79tAmimcfFdKa1bMuHbyHwXvE1R1hjQ9QsgEt9iiihvMCS5UJCTXNdaSUxNBtYwUHxFXsosk2qPY8hCAXCX48j8a3gDeCqcWbkhFy9Zhq6s83i3FxvB1krseehvuLPUPb1PRLJmdMGV9rH4HPp8Dg2MtboFbbTZ2BQkUarDQiQvotg5WpGMAjBWFKMXv2yh4oDmHFBGav8X921maH1Z5RHJerN3KDQLP4SQFs1Y6YkVwgYwz6oWufCnH1cwQTFifttci1FVpsYnuf7FyRAGMMBiNQtQT7Q8Sbraxjd82HUYGzfehvD78kvFFxAxddUmGRcXLQ1hgJaHs8QZurRbC35s3Sds31EyeicnjMEdmrysrDjKgGitvAz9q8c46RzSj27pfHMXHd9JzBZQTv7cVDCtFYaio43rqmWVDq24GxgU9jaZumhYxXPbc9tAAyygKJ1ytZk93eoMzxNcTNCMk9eiRzfvyV7kjnh6KDSRpMX2GZrZbxFYNpsXAqTViJxMXpRfsKadEVrPhEEycC7qesfxAi76Cu6PX1QqbTVjqTyELbcCCXtqb4TLRwrQx9Aj87FEeujgeyb5LsuCskzp7mKsiYGhCMq3NYb8jJ4bEmG3spdugfhTmLYgfLPmJvRA5pdXvvGgZUU"]}},"1":{"credentialSubject":{"sensitive":{"userId":["Ks6tRdetz9GxhneTw5zpp51r3DKeWX7312w7uS9n8rbwGMyTJvBWz8QdU7N9KpWbo2FuBtnCyZr6MEJ9k5MghRV2zzkht7pYEEwPPeHxcwPANEmt44bzjYNKEL29YNVxQB6YvQZvR1RcjcAfHBz6ss5q1QvQadGFkFPYauVYHadehaY139wUqycF5dgdownhEtUD8B6BB7vsHpusHksfZnJEeeEmhRwq1LW8iRqHtpsxtpKELFobHJFe8bf5tQoujs7dbzkRcWF28S7JpjmqmERFjwJjVhHcko7WQt5GN5ZPqrx48Hgp2QZm7kZrXgrtTNNuEpnrZ8UoRabXTYgENUrFuuKqHS5p171mgtbHJoyQTqiXGGC2sUjowCYJm6ktF9RG1fJW3n1xHavqNnYKT75dUqYvVuF9K4rSW2fey4DyLW3sWh78hw2s5mGrGqyZ4p668nsfauUy7zjNxrZw8hjyJZ9goB2GGHCeVAGzux3KULCpDnBeMrW5yeXRVzzHWBTxWtyEEzs23RQHAv4nhM7grxekvgprHkbmFTsXXmtkAYs1sXhFnXNLayqY3sz5WpA2wPHWSMo7bGTcxM6eE6c8eaPqHXBZ8eKHCSbumwypK13nGwvafsVivHxGnB3dDsBaid4TuipRjacmY5gTyWkE9ir6bMykP5ya17s9cZEjhEHYGynrAAvBruzvNb1bqsQ3aEGBxTmWTSGMpnBqDJNTE3PyQ2egrXgbcj2ex5fvkiQjmD4myBBx7X4UANeWapWGAngkKWUZPcUJresjfaMjrfjKPfRf7kXdXkH3Ks47nyHyVw6UGg1J7Vw86oMYmG3EZZHw1ghV67o4QMufbZP8tFcUpXNcQzhVBUsW9e2YT2NhkA1uiV4XXTkon31von6bTa4CBBBm56Xe4kdBirAN17cE86ELo9uCvUN3EmYoYRm8FMCYKRf2KC8LbFZ2EfHyqz1HQRGmnetToPMDCeK8HJHP7kuAsvnFrkrp8yYeMknbkhvf6s3qQxLHYiwTBT3rSZLuy26QMbxfhnSwi8LAC3DQZFu4TD1sVe9zo5qFDm7BtbxoaR8kczyAKst8WvPnFn14ouFQ9BGiuTHioVDeG8V7Gv5yRb9c6df91WnCWn7TgeJQ4Gbns4g82jd3SHrH2kb1SW6RyvSkAGjXXH2ZyBphrnGAYZhQWBJ"]}}}}} \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/bbs-circom-presentation1-0.5.0.json b/tests/anonymous-credentials/serialized-objects/bbs-circom-presentation1-0.5.0.json new file mode 100644 index 00000000..73f975d9 --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/bbs-circom-presentation1-0.5.0.json @@ -0,0 +1 @@ +{"version":"0.5.0","nonce":null,"spec":{"credentials":[{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22education%22%3A%7B%22properties%22%3A%7B%22grade%22%3A%7B%22type%22%3A%22string%22%7D%2C%22score1%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score2%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score3%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John"}},"circomPredicates":[{"privateVars":[{"varName":"x","attributeName":{"credentialSubject":{"education":{"grade":null}}}}],"publicVars":[{"varName":"set","value":["7Jjyu46Z91jBSubPtv8jtRmkJdUSvYSMG94sHVD9AfMP","4efTvLXrzMGRJmq3Qj51NYKfhH28tPAqXEfgVUeLPv2w","8RvzAng4VQyWQ6S43RbGtRiLmojjF11rnp61yR1Hpzyu","4QpHmecK8KHacS8ZBASweXV98zqzLiozDA7d4MVn6rWr","6au7i34j8TGJUBm24FzRZ9a6JyAWTp2yjdMXZ3szPjZs"]}],"circuitId":"random2","snarkKeyId":"random1","protocol":"LegoGroth16"}],"sigType":"Bls12381BBSSignatureDock2023"}],"attributeEqualities":[],"boundedPseudonyms":{},"unboundedPseudonyms":{}},"proof":"2Avuei8RuVnfk1V4MwsdmUCq4vBZUomfgp9cDUZrkS8AjYEXic5UzgbaKJyShbJAM8sG1yxw3grFqNKMA8MHtDtx6TYPNaBJPa4Le6cmaTbVk1aMG2NEGqpioZ5gVPQaahd6oPPGF4T7n2nhFQa1obQdBhd3wT1e6AEevnQqjd1LnuiLQh25DDt1wCqSXVFsL6ULxTxSrdJc3ovkCTviSb7YRxyWPvpMFYp3aspErevSLkDrDBvQP36LsRtvi7nAXP39QsnLDAfPDMUUPUyKnQc6QgftrwSDbFy8fUeuuBAiH2mVXcZdMbY54b9E3SuJusPPtfdbnBD8LfZHVCovogKfYDexMvCJLpFnbzXSwZBxGd8izS2wFhvqaPTYVW4s5evic1MEQaZ6xAAjG7uJodhEUu2FQ4QcmibiHqxrs3QmD31ZDLajW4wscLaz7s5pAkUYsoXjT6CMJEesS2pnaPsXvCHgm9uqyM8t4YnDqUvJadgV7RaVpfb3wz8ZWmPJu3GxgdsGYY8rW9KSwnvXt7WfViQgw8NxZgiW1ayouFdjf4rxQMy2P4LF1Hmq86C8dfCYhvgz1dtJjYz2bcs4ECBG1jQe7rBkDnMLnwRWADetrVNaRLGr1YiCXYXrVG46gtsERHKXMUZZmuavVZ9JBZQfoaGC6vHf6DMjov3Uw4NeAXd51FySzM8qLPkWTQ5Km1n4eEBULCd4cHTzUyzc922n4EQPw9anFds2D2qogT8K9mQsZoozNFDTxDdWkNAoTBiqtqHBXzASdNyVzP8F15Ua31ZD2bSWUWJcgs47HUnv7ratKavUy19znfApg75e8AaCyXmjFfDebVhFWdVzJj1KyP69NLjUNHNyS7EmQEMAdyMq7qYMHHkX73SdeiMnGKNXhGH1jWTNFJ5TriXZR8V6x3mrPEyP3d55EUEBxjsXePC3H3ku2WCCJX39RYdGAwoPzgVzCi3xCPRzjTCXxnrQAPjh9XkkV2re7ekRZaRynWdhf47VFEB41Je4HCZVNt3dqWSmS74Gm1n39wwXWSmPHZFPaVsUTrVVcA4jWaRQKoGHaJinEha7yVJfzwZQ6zFVq1GM7hmjQBjNoSA9b1aj4VcacQKGPYzmw8x69Kmz9tW1BpFh6nQakq3vqDwEFomksebtQtDHf8AqHfPAY7AdwdaxLmGNd2A6yuedmQiW81Mxvofvk4Vcii5ftMcUzErXKcy7rmHXbvLU1HNkvyJ4V4yuWkGU1jFt3ZWjFwsvF7y"} \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/bbs-circom-presentation1-0.6.0.json b/tests/anonymous-credentials/serialized-objects/bbs-circom-presentation1-0.6.0.json new file mode 100644 index 00000000..22d260bc --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/bbs-circom-presentation1-0.6.0.json @@ -0,0 +1 @@ +{"version":"0.6.0","nonce":null,"spec":{"credentials":[{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22education%22%3A%7B%22properties%22%3A%7B%22grade%22%3A%7B%22type%22%3A%22string%22%7D%2C%22score1%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score2%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score3%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John"}},"circomPredicates":[{"privateVars":[{"varName":"x","attributeName":{"credentialSubject":{"education":{"grade":null}}}}],"publicVars":[{"varName":"set","value":["7Jjyu46Z91jBSubPtv8jtRmkJdUSvYSMG94sHVD9AfMP","4efTvLXrzMGRJmq3Qj51NYKfhH28tPAqXEfgVUeLPv2w","8RvzAng4VQyWQ6S43RbGtRiLmojjF11rnp61yR1Hpzyu","4QpHmecK8KHacS8ZBASweXV98zqzLiozDA7d4MVn6rWr","6au7i34j8TGJUBm24FzRZ9a6JyAWTp2yjdMXZ3szPjZs"]}],"circuitId":"random2","snarkKeyId":"random1","protocol":"LegoGroth16"}],"sigType":"Bls12381BBSSignatureDock2023"}],"attributeEqualities":[],"boundedPseudonyms":{},"unboundedPseudonyms":{}},"proof":"5aAkSr7VzAPLc8vvtrSvLkGPLTn1TBwVtBCe3gfV5KSXmmwBXWxvFmhq7b73h3kjnnuw8WTCyVQehodJsNdfMME2YS6XFFmMj6To2Ar1h1zDNFYvNzfuSd4iW1MHh2DdLXCpss2kd6tMNw2K3MVuKBwKVB2ShpCN4YTuSF3tbdohn6HdEtKi2pRyCJw2zWbwbTQyU3E84JwyPQDzZfxDLcppv3Q6gwuhZ4sh4XFa16sSbYwiESHRhgnqVTe1V34gERU37tbawoYGjCNHtLSNDtXpXf8QfaE4K2wzuV7mZGoWU8zVdUw3XrEofmxUKdFvLFjyCyWmhpYziLxB9pmfRBXdY8gmJF9Zv7MKqzNmp3gssikuSk4xh8T7vC3wurLtsBzukQGHvuWr3JVEitu76CQv5ABYiJgWnxJyTFts45WGhDmFVo9mjDngQkkCP6CvgBHutaYNndSPd4Jvn1wNPV9G1xWuZjiherBaDHdb9swvS3bZ9KajduBqFYiZAx53ZKEHM9kDzDXiG5mBPuxxAuGsdQTfnPTk2C4rPED6kjj5buueM29riT2U62rLnpX9PKSaak66j4T8NwEfrtReZhmnrgMJcYmRrseYZ6T4JgPb6vrF4d4ahUJQGDoyVwgUZJkVboNbbVewwoB76X5G79gE5d86f32pkBmHbJqjYFWxw9E6Wn5i62DfWFtrMwHeNcpiPS5kt3b6RVvGchZeWWqKf4SXazQhPdG51Cix8tkkFszYm9d5bJ493S1XMokRy7uPX7jXc6c5Vb1Qbmr8hLTnm8jQdh3kEBLc5FCUBn6vTpRRuPkPxUaizeU692ckUgYKMh1Z36fRoAUNok5NjhoJWZcEWjuiRwWppptDfdo2ZhqHTgSDA3FRFy7FQ1x5ATCybgFatyWh26oHwqnz8qorNKAUEZqg1SsuyJWLnWKvVsm8MbwxsJvrgoy65j2HR1qcjew6gB3x65SgFP75L6hmsuoFF3ucxSWoq3CAoUSDWwKRmyvwTzNQqQ2FioN69EuDBoNfrV5nV4P2PynYzvFUoqmtojrJwLpV81JoG1GbvHxbNLNHTwP9f5NoM1YVnHv4ULLp1EwEHJJb5dugFwjbj5GmGQdETmzN1KB8zapD8Q9phttp2PP9k1UqvWTFhMVS3M1aGd4AXgnhSyJX6XLnfHf7dg67GxS2bcHnTKo37z5Z6EoPXJnFiUbvrDGwpd6MCDiBp2w3Dz3D9AxsDpD2GbiSXW5ivZmKypw7U19BeUSYG1YYbvnJRuUxdKn1TJFaog4nn7hWnmFfEnLVttiHa"} \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/bbs-circom-presentation2-0.5.0.json b/tests/anonymous-credentials/serialized-objects/bbs-circom-presentation2-0.5.0.json new file mode 100644 index 00000000..44989d26 --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/bbs-circom-presentation2-0.5.0.json @@ -0,0 +1 @@ +{"version":"0.5.0","nonce":null,"spec":{"credentials":[{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22education%22%3A%7B%22properties%22%3A%7B%22grade%22%3A%7B%22type%22%3A%22string%22%7D%2C%22score1%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score2%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score3%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"Bob"}},"circomPredicates":[{"privateVars":[{"varName":"x","attributeName":{"credentialSubject":{"education":{"grade":null}}}}],"publicVars":[{"varName":"set","value":["7Jjyu46Z91jBSubPtv8jtRmkJdUSvYSMG94sHVD9AfMP","4efTvLXrzMGRJmq3Qj51NYKfhH28tPAqXEfgVUeLPv2w","8RvzAng4VQyWQ6S43RbGtRiLmojjF11rnp61yR1Hpzyu","4QpHmecK8KHacS8ZBASweXV98zqzLiozDA7d4MVn6rWr","6au7i34j8TGJUBm24FzRZ9a6JyAWTp2yjdMXZ3szPjZs"]}],"circuitId":"random2","snarkKeyId":"random1","protocol":"LegoGroth16"}],"sigType":"Bls12381BBSSignatureDock2023"}],"attributeEqualities":[],"boundedPseudonyms":{},"unboundedPseudonyms":{}},"proof":"2Avuei8RuVnfihf3uoFuSqv2NXdtppkGKadbnL6ucjne8MxhqeheYPQGcKdeBU37Z145hMHv2UWpRtFG9C7XmzfJPonL4hdsk4NaaUvBNewNxAcVJQMCgcnsV7RgdjXvkYVnRFjcsmjQZkTTd9wN3j1L1oWPj7vjtAzk1FGK9nUqhED5996tw9Ez2KyE3BtqwDcC4tsjkq6MRWBaNRxr9sev6LsyjXpxJ98ib9j1cnwg4QmAygeM4uEKCPR8xxRPhZu3bCqAh2qojTJEoapJZ5jWZ6NmYKRAG7WApAJU45cM1Ewcf1M35oBCwzuGhkSFfoJZwfcHCkCQcWTa5f9WQ2JbGfVEAoqP3jwwbdNRSFPqN1gArqTRGip97EWoTaLUHmqqWZ4f9GFURvxeXG4xWLUKWGkb3UTH3WqJhGZsyK1Noh5t6HSGsr5V5gNTQduwXR6AA3vFZXxTVje8A37sRFikqu8RnE6xG4nzfq73pqzCzD9y5y3sqkEEXyDY1uJsZvRMPFjnr5Y2m8Y1JEL1vsKgZEug2h1HK41n5MGiqyxsqG1LkPoXGrsc3Be7jNLYHfeskrjV45yHcGJURpxeweHyuoa6sNasxvC95PtToV4KTshkXEVX2o4EtV8jhuJFo6yigdux4esB2CGZRWGu3C9prDfWgYLw2oQW2JhcbS4Z4uXR8o4VkN4uNZU1C6CG6e4wpCJRFAWPQVAMxSiN7T9JCTzhpvnSUdu5NUbEySPwDi3TZ7cWQaE9o8T5qzLFj1qjfmQnmzR93boSb2kjWuJrqyZTr93zYUpeqVfGf2PVHxff8ELMW7BvA9zjEF2c8h5Vtrnw4tURGCqFhF6WRchKhz7zfLuQtGy1nib2T8Kze2vxoaahEdypMU2yD5vZKJ6avu81oBhHaK9ogDWGAB62b6WCfcE7p9ChWvNxJonrhiAaJrjkZhkzN1hUPyRi5QgKkZcAkmoatupwGeLoVfikr7T5wZF7zZGB7g6JDG3UMVqXEtzUNQfp2zPskFR1gH4N7e4RB6PvtKM9Wh6SiRC1ChPZheE5CeazcRfC4E8jVH9pq4ow7GmUctSy6ZU6DnLRzcTaFuhaHoitPfap57BugM9UKCQc2hTfUo1g7nLveFcfZHsSUbBLHzQgKzk7VSkDxEuwQgzL7n1n1oQap1dhoQNFV9b9DQFcyZA3KKVPDcraLyurWnEek75XWjmJhgF3EwoQGBbTHCryb5CAUqmKHWPD8kwNTAaJnhakQUQh6xb"} \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/bbs-circom-presentation2-0.6.0.json b/tests/anonymous-credentials/serialized-objects/bbs-circom-presentation2-0.6.0.json new file mode 100644 index 00000000..2d87359f --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/bbs-circom-presentation2-0.6.0.json @@ -0,0 +1 @@ +{"version":"0.6.0","nonce":null,"spec":{"credentials":[{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22education%22%3A%7B%22properties%22%3A%7B%22grade%22%3A%7B%22type%22%3A%22string%22%7D%2C%22score1%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score2%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score3%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"Bob"}},"circomPredicates":[{"privateVars":[{"varName":"x","attributeName":{"credentialSubject":{"education":{"grade":null}}}}],"publicVars":[{"varName":"set","value":["7Jjyu46Z91jBSubPtv8jtRmkJdUSvYSMG94sHVD9AfMP","4efTvLXrzMGRJmq3Qj51NYKfhH28tPAqXEfgVUeLPv2w","8RvzAng4VQyWQ6S43RbGtRiLmojjF11rnp61yR1Hpzyu","4QpHmecK8KHacS8ZBASweXV98zqzLiozDA7d4MVn6rWr","6au7i34j8TGJUBm24FzRZ9a6JyAWTp2yjdMXZ3szPjZs"]}],"circuitId":"random2","snarkKeyId":"random1","protocol":"LegoGroth16"}],"sigType":"Bls12381BBSSignatureDock2023"}],"attributeEqualities":[],"boundedPseudonyms":{},"unboundedPseudonyms":{}},"proof":"5aAkSr7VzAPLRpiEgJNdquN5hRP2DHxz6Y31mVxDGw3KhJ6fw6Np8NM17QiRqokTDeYv8WZqEYnq3vX6W3bHtwn8ZaoLyG91G3RmH7Nfgpkbdo5RMzm9qHHGEenxmY2aB9Rnt99EGbRt2qxGVxq8Sjk4aW6hhq11bY3tnBzFcuWUCrRRrzrbaLMJmzyzZEE8JXy1Kk8h8K1z1pqUPQb5AoAvqmJJuptxZ9wuA62d9bactQJkCRK8aUyy35akMh4tSAUd4JuUx7854Lajn8b8mPrMbh2pyayZAXTTV121fEzajJeTUNtMqWbWionzMMB9o9m7MLK4wwSohZoxE3z5hZPZ56g85xNkHqHQjdEyb8BiFdov6jJibYNAipmKYqxCnNQ3VYhvbuBuz6LwQshoysNQUZLjRgWbDK823KoPBb6McMCTzzVjpPzURwaPWtr7XPutvb3dzd6BW6LGMqNU6FJcRQVV9RXLpK9fFPH3LMc1AMZ1bVRzDAXpBfcRZksqXM1SsKo6Q15ZK8XHvdH8bsHwLchxmG2GDAje7zMi6K1ktSuZD69zS8B414uprz1fZGG3kJfYHMLVWCBeewprPVm6Y9oMGni5tGzcotxQnrJmexMSKVDx8MpFjJw47pVcU318MBM3LSk4pi7sJMHTicE4Rt4HHjaS3UKcKag4GrE94ngJszN2B4NaBipsGzDb6sMtAgoSRwcGYuqaWCbuHGgmmm6vp96JXozRS1QKG5nPALwWdFMhv2YUXAnih6Q5n4fPZQvyfjUzAU7kSAyHRZBcz4aygYG9LJwBBcm8hnBMhyYmW8SfwLVd72NXjn474E85R7wNNHbNyqKrSnR7znYGNZeKMX7WPGijMxcA5UmWQLsX7DfZjScyBAVXXEiTC4Pgn1cW1ggzAFrMVEsBo6C4q6id4QZzhvnLVgS7TDztFVdGYZd7CujEguyARshi4suW9kZNsaNv1CK9QvLhhw4b6xt8bcbMRxPbtfgxfy3uHSoYAAZthL9LHjukbQzaVPrv6uJ88P3Vmp8k4BuKJrqEJmAcoo1Tm5ueX6WvamAEh3tGAPpSbim7tX5P2Yk4djTjNKbJTs5tT7ZuHkwkJorLeRbkzF4BSn1jkAjExgGDt9VR5CemFYMWzHQW4zNfiwG8CbD9WraCXMPzm1ZnCahpAFPmXxMvYd8cyGY5gJcWwxxvwgKqvDTNArXeYakmD6AmJVdmeHWGhu1hFxpnw8wEpDWcrsfLXWLaem2AhFFibQ41c9uEUqwnKmDrc73CYZzj5LHUHSxiUyuqwZuuuMbwz"} \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/bbs-presentation-0.5.0.json b/tests/anonymous-credentials/serialized-objects/bbs-presentation-0.5.0.json new file mode 100644 index 00000000..9df8c889 --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/bbs-presentation-0.5.0.json @@ -0,0 +1 @@ +{"version":"0.5.0","nonce":null,"spec":{"credentials":[{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22BMI%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.01%2C%22type%22%3A%22number%22%7D%2C%22SSN%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableString%22%7D%2C%22city%22%3A%7B%22type%22%3A%22string%22%7D%2C%22country%22%3A%7B%22type%22%3A%22string%22%7D%2C%22email%22%3A%7B%22type%22%3A%22string%22%7D%2C%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22height%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22score%22%3A%7B%22minimum%22%3A-100%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22secret%22%3A%7B%22type%22%3A%22string%22%7D%2C%22timeOfBirth%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22userId%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableCompString%22%7D%2C%22weight%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John","lname":"Smith"}},"bounds":{"credentialSubject":{"timeOfBirth":[{"min":1662010838000,"max":1662010856123,"paramId":"random","protocol":"LegoGroth16"}],"BMI":[{"min":10,"max":40,"paramId":"random","protocol":"LegoGroth16"}],"score":[{"min":-40.5,"max":60.7,"paramId":"random","protocol":"LegoGroth16"}]}},"verifiableEncryptions":{"credentialSubject":{"SSN":[{"chunkBitSize":16,"commitmentGensId":"random-1","encryptionKeyId":"random-2","snarkKeyId":"random-3","protocol":"SAVER"}]}},"sigType":"Bls12381BBSSignatureDock2023"},{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22isbool%22%3A%7B%22type%22%3A%22boolean%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22location%22%3A%7B%22properties%22%3A%7B%22city%22%3A%7B%22type%22%3A%22string%22%7D%2C%22country%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22physical%22%3A%7B%22properties%22%3A%7B%22BMI%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.01%2C%22type%22%3A%22number%22%7D%2C%22height%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22weight%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22score%22%3A%7B%22minimum%22%3A-100%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22sensitive%22%3A%7B%22properties%22%3A%7B%22SSN%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableString%22%7D%2C%22email%22%3A%7B%22type%22%3A%22string%22%7D%2C%22secret%22%3A%7B%22type%22%3A%22string%22%7D%2C%22userId%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableCompString%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22timeOfBirth%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John","location":{"country":"USA"}}},"verifiableEncryptions":{"credentialSubject":{"sensitive":{"userId":[{"chunkBitSize":16,"commitmentGensId":"random-1","encryptionKeyId":"random-2","snarkKeyId":"random-3","protocol":"SAVER"}]}}},"sigType":"Bls12381BBSSignatureDock2023"},{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialStatus%22%3A%7B%22properties%22%3A%7B%22id%22%3A%7B%22type%22%3A%22string%22%7D%2C%22revocationCheck%22%3A%7B%22type%22%3A%22string%22%7D%2C%22revocationId%22%3A%7B%22type%22%3A%22string%22%7D%2C%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22lessSensitive%22%3A%7B%22properties%22%3A%7B%22department%22%3A%7B%22properties%22%3A%7B%22location%22%3A%7B%22properties%22%3A%7B%22geo%22%3A%7B%22properties%22%3A%7B%22lat%22%3A%7B%22minimum%22%3A-90%2C%22multipleOf%22%3A0.001%2C%22type%22%3A%22number%22%7D%2C%22long%22%3A%7B%22minimum%22%3A-180%2C%22multipleOf%22%3A0.001%2C%22type%22%3A%22number%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22name%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22name%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22location%22%3A%7B%22properties%22%3A%7B%22city%22%3A%7B%22type%22%3A%22string%22%7D%2C%22country%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22rank%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22sensitive%22%3A%7B%22properties%22%3A%7B%22SSN%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableString%22%7D%2C%22email%22%3A%7B%22type%22%3A%22string%22%7D%2C%22phone%22%3A%7B%22type%22%3A%22string%22%7D%2C%22very%22%3A%7B%22properties%22%3A%7B%22secret%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John","lessSensitive":{"location":{"country":"USA"},"department":{"location":{"name":"Somewhere"}}}}},"status":{"id":"dock:accumulator:accumId123","type":"DockVBAccumulator2022","revocationCheck":"membership","accumulated":"5iYSR7j6eCT2nvmKMGE3f88CQ73crNhcesj1Nq6JwkqbvCzuyR9qNYWLpvyJU1h27d","extra":{"blockNo":2010334}},"bounds":{"credentialSubject":{"lessSensitive":{"department":{"location":{"geo":{"lat":[{"min":-30,"max":50,"paramId":"random","protocol":"LegoGroth16"}],"long":[{"min":-10,"max":85,"paramId":"random","protocol":"LegoGroth16"}]}}}}}},"sigType":"Bls12381BBSSignatureDock2023"}],"attributeEqualities":[[[0,"credentialSubject.SSN"],[1,"credentialSubject.sensitive.SSN"],[2,"credentialSubject.sensitive.SSN"]],[[0,"credentialSubject.timeOfBirth"],[1,"credentialSubject.timeOfBirth"]],[[0,"credentialSubject.BMI"],[1,"credentialSubject.physical.BMI"]],[[0,"credentialSubject.score"],[1,"credentialSubject.score"]],[[0,"credentialSubject.userId"],[1,"credentialSubject.sensitive.userId"]]],"boundedPseudonyms":{},"unboundedPseudonyms":{}},"proof":"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","attributeCiphertexts":{"0":{"credentialSubject":{"SSN":["HRjsLzqxShHMzngTAYjqrUtyzb2krbdeUqaS7eFeRiEeXZkbohHGepFyEGLNffVUjSX97VnAaPf31bC7GGtoR4sj5oYNNyVjofPameTCmTz8ocABAeAkBQ1kqhxbxt9orY5PjAHBJ1xVZmvSfb4yJGLbj6yLfxjuXrRrSR8uwvUHoZtkYYiyRWoB7ZLW5PNbogkTUEUqoSeVZzd4gKwvSGd974js2m5hRroK28AeQHabhwA5ddxdTE6uR4TGQziHBbBkCUwq8QaAgrmTifNDUHker2r8kQxK4ojB1F7voP9BrdcaG2w1vATheJ1qnBUsnhc3UwBzq62fZ6R3qtfy1hysXHvDvgQ5ZjMij18rJhPJNMoJe3fwiWzU9PPGxxxjMJ2VXtbF9ksg7mqwwjj4Tt7zeov9zKSfFah6fsjVBnJCXVBxvh5ieQ5PSMbRSMY7rtvP6DaXwzwRJvMYXh45Z1hHQvHNvGxQzqB9EQBQDQZ25aHeXKU7kJ7GLkjHjHDdqpNBsotzeDkX1L5mCy9nhBKXZRtXMbPyepW7CtDtoN7EwGPjkCu4eYpynR6JN4Bp5whkM9yh1vPWZCQTjBYj9nis2hYXKY8jEdNFaULbMJ1yyX7EryPyyZrpqvgkpoGBAXdf1nWK7NkHK3WrmcsmedLaVoT1HQC7Vvt9ewxwBnhgQtxbXn58fWTiKPuc7QhUiS7eR3tLPiRcmpoj2BKvBPWqLWxrw9dae6JvQzPrYUSCEdweRsmyHnr9J5x6vbLJ51psgzpwKaT626UjEFhA6t1pa14xQKAh3oWQ4S932eSfoCh2fGxQtCoZpwQgM3443oJ4S9py4UyjuM6ooEwUpo1UU4U5yozd7ZFLf6Wm3HVghZkURsJysVHDJt7vt6ttrBptRsPhMgQr47x8v8R5upnwGf5CJo53YhSqsX8Z9vxLFBM1bs3WjvLXzDksEYDNhJxhVL9W5nD9YWcL4ex5teeUakrgV6UFTweksq2RU6wSGfvb64a4cEb4gAEvG3SvfufwENHrUDSvg1j7f7JiDKgSCnwxE9DbYs8oATJVQ1Jnop63KXfNBS6BHngSZbxbvNVpW2SFFQBYsuT5Gy6RATPwnQ4RY9AtNv4ZpatP2DYqVeocry7B7H7GqvEJyXn1yz4aMgRHsWJ9VenRqX5SGdhwow4Ww3c1fAF669s"]}},"1":{"credentialSubject":{"sensitive":{"userId":["KdrNweJibC5AyjxBAk5ozvtB59poW4ggnHUa5KeHM9NiePm8PCncENSjYA2CnrHsq1GqHLK2w5PyLuLh32TWSpjmPjaZzY6jHZFxbBjEf63yqSLBp2RvXAW1hV4uUDpLgLPzaU3s8zA6ZZdUEb5oSTdLP3XaifEpqguTm77dEM89UhtnLUC3jiUXHSvMCFfeQK5cCWLMwuq3MwHr1hN3PUhF4Af4tkYAazVmwjU2fqx3sTcH1nwQqLahkSBNCzzMwVYMiiYrqiQ1tUuUWck2MDSckFgoEo6nULtgvVzhtWfZh5YuiXiic97FYuPJq8MDSRB63Q67M1YjgDqPFRTC9BeQzPJwyVvrSmdwcRMAk4aEaTD38ks12hRabXTi4pGTggJXvSWa8J3KkKPQUaRWujNATJmJ9EjRian9rZAKhoGz1VypHGGtHncMSz1R78iUXsiX5ozdnhPhf435dTeXnoK2Tr1ANfLuBtJZiLu7drdnXfLBF8xa8XLUeCH7NY9mQ7osfaWoDd9m2MaQKzHSbBe7X8PCwWfMuhtKyxkXzhXt4UasMdieE1HgEbSW5CccZJShZJtSzaoosWXLF2oMxhrXu11EYVXQAtfBbwee5XNa9yCu377QiaHL5qpWxGy4dRUzC4eLt7LAKZuFyidaGWXbcUfv1g1sqfunzb2nCoYR7GPkLWMDNDpDQfpP6MqZ98EfXVAeynncLuomYzKubUQ4jsTM8cQ26N9bfZJJBbdCSEXuxriWb2RLRJFLxkhUUXN2khz4RGKMh9QrKmYHZTpKVFY1gYco7qotLfKKhvUXuP6J6A5Dsyvc5v6Dxg7tg3LSYgdigMDVD3VQhzCsWYyeNpYBHuH44Hu6HgWtHq6Xqpxudx3wgR1Q5hnhkgZQGpbuP8d7h1ZA1bfhHHxFgxGPxsefyVQ8CQqQrTMajtrsAAmt6rpYMu75882dAZKWFEwVECLfa6Fy5ghbryStpKeA6LJN3Ht9R8edunzC2vWYYqXXHmPsuUVKRoAqwARSqc3Vw9yZscnNsaesmiCXLqJuB9TG218FXw6WangKh3qfXAwpzUAbEzeTcnProSzHyKEfwFaisPpJqUQSMtzmqrJfdCyPbfFxZNuWUhj273VwXHLhqvs1GkdUC6TsGEzDdLXUugWgcobGiNq3fMSqtJE5bTjEj96G7TcPw1P"]}}}}} \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/bbs-presentation-0.6.0.json b/tests/anonymous-credentials/serialized-objects/bbs-presentation-0.6.0.json new file mode 100644 index 00000000..2365f093 --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/bbs-presentation-0.6.0.json @@ -0,0 +1 @@ +{"version":"0.6.0","nonce":null,"spec":{"credentials":[{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22BMI%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.01%2C%22type%22%3A%22number%22%7D%2C%22SSN%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableString%22%7D%2C%22city%22%3A%7B%22type%22%3A%22string%22%7D%2C%22country%22%3A%7B%22type%22%3A%22string%22%7D%2C%22email%22%3A%7B%22type%22%3A%22string%22%7D%2C%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22height%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22score%22%3A%7B%22minimum%22%3A-100%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22secret%22%3A%7B%22type%22%3A%22string%22%7D%2C%22timeOfBirth%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22userId%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableCompString%22%7D%2C%22weight%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John","lname":"Smith"}},"bounds":{"credentialSubject":{"timeOfBirth":[{"min":1662010838000,"max":1662010856123,"paramId":"random","protocol":"LegoGroth16"}],"BMI":[{"min":10,"max":40,"paramId":"random","protocol":"LegoGroth16"}],"score":[{"min":-40.5,"max":60.7,"paramId":"random","protocol":"LegoGroth16"}]}},"verifiableEncryptions":{"credentialSubject":{"SSN":[{"chunkBitSize":16,"commitmentGensId":"random-1","encryptionKeyId":"random-2","snarkKeyId":"random-3","protocol":"SAVER"}]}},"sigType":"Bls12381BBSSignatureDock2023"},{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22isbool%22%3A%7B%22type%22%3A%22boolean%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22location%22%3A%7B%22properties%22%3A%7B%22city%22%3A%7B%22type%22%3A%22string%22%7D%2C%22country%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22physical%22%3A%7B%22properties%22%3A%7B%22BMI%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.01%2C%22type%22%3A%22number%22%7D%2C%22height%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22weight%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22score%22%3A%7B%22minimum%22%3A-100%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22sensitive%22%3A%7B%22properties%22%3A%7B%22SSN%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableString%22%7D%2C%22email%22%3A%7B%22type%22%3A%22string%22%7D%2C%22secret%22%3A%7B%22type%22%3A%22string%22%7D%2C%22userId%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableCompString%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22timeOfBirth%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John","location":{"country":"USA"}}},"verifiableEncryptions":{"credentialSubject":{"sensitive":{"userId":[{"chunkBitSize":16,"commitmentGensId":"random-1","encryptionKeyId":"random-2","snarkKeyId":"random-3","protocol":"SAVER"}]}}},"sigType":"Bls12381BBSSignatureDock2023"},{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialStatus%22%3A%7B%22properties%22%3A%7B%22id%22%3A%7B%22type%22%3A%22string%22%7D%2C%22revocationCheck%22%3A%7B%22type%22%3A%22string%22%7D%2C%22revocationId%22%3A%7B%22type%22%3A%22string%22%7D%2C%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22lessSensitive%22%3A%7B%22properties%22%3A%7B%22department%22%3A%7B%22properties%22%3A%7B%22location%22%3A%7B%22properties%22%3A%7B%22geo%22%3A%7B%22properties%22%3A%7B%22lat%22%3A%7B%22minimum%22%3A-90%2C%22multipleOf%22%3A0.001%2C%22type%22%3A%22number%22%7D%2C%22long%22%3A%7B%22minimum%22%3A-180%2C%22multipleOf%22%3A0.001%2C%22type%22%3A%22number%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22name%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22name%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22location%22%3A%7B%22properties%22%3A%7B%22city%22%3A%7B%22type%22%3A%22string%22%7D%2C%22country%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22rank%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22sensitive%22%3A%7B%22properties%22%3A%7B%22SSN%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableString%22%7D%2C%22email%22%3A%7B%22type%22%3A%22string%22%7D%2C%22phone%22%3A%7B%22type%22%3A%22string%22%7D%2C%22very%22%3A%7B%22properties%22%3A%7B%22secret%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John","lessSensitive":{"location":{"country":"USA"},"department":{"location":{"name":"Somewhere"}}}}},"status":{"id":"dock:accumulator:accumId123","type":"DockVBAccumulator2022","revocationCheck":"membership","accumulated":"5iYSR7j6eCT2nvmKMGE3f88CQ73crNhcesj1Nq6JwkqbvCzuyR9qNYWLpvyJU1h27d","extra":{"blockNo":2010334}},"bounds":{"credentialSubject":{"lessSensitive":{"department":{"location":{"geo":{"lat":[{"min":-30,"max":50,"paramId":"random","protocol":"LegoGroth16"}],"long":[{"min":-10,"max":85,"paramId":"random","protocol":"LegoGroth16"}]}}}}}},"sigType":"Bls12381BBSSignatureDock2023"}],"attributeEqualities":[[[0,"credentialSubject.SSN"],[1,"credentialSubject.sensitive.SSN"],[2,"credentialSubject.sensitive.SSN"]],[[0,"credentialSubject.timeOfBirth"],[1,"credentialSubject.timeOfBirth"]],[[0,"credentialSubject.BMI"],[1,"credentialSubject.physical.BMI"]],[[0,"credentialSubject.score"],[1,"credentialSubject.score"]],[[0,"credentialSubject.userId"],[1,"credentialSubject.sensitive.userId"]]],"boundedPseudonyms":{},"unboundedPseudonyms":{}},"proof":"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","attributeCiphertexts":{"0":{"credentialSubject":{"SSN":["H6MLBzRHSoHw7Z8xgvfYekDJcAGvMLpn79jQ3Bz7RHzxUoP9vhGyxXNopYC1eav5YtoTssbxVbm2eBcXXoJvx7NW63GiajVFmc7TbTntf1u1fb1F5SMogBqW4UP3zSqNEWE2veV2V5faDF6cVBpGURyk7GewJ74r7cLpUmGdp8ayzshusHH6EgMk1Ec3KSG9X1bRtEf9yGwWDcsycTpBxsuLWthqRa4saCiMRjXK4PzTmLEJMdhdrkVhqghYLAEmtE6c9c71iFiBfy5GWWvzDnqHePaAhxW9foo7NnnnMRP1gkVPzFGTPousKHw6z6trn7Gwn3iP4DbFf3chE9tnt5njCLz3Nr93qn9vcxGzF2yDzngqEAiF8GDnFSYx7hWguQbLYmo2CvezxThmAeRUrePhtX5snFX9XQ7XKepMFpwUtYtGxxo1gAFvrKjAtbeB7X8dAJw6BNDfN15r3UebbDnuP5ao8tswLREekoSRbQiT7HLfKAF3qiomAit8vUQmmxCCpejpqixtFGoCNhQpbgp8V3npnWViVv8NRdpSuBDreH3sfCAiv4H5zgQhpeap8eBC9iCCibKxpxTVE8U881sGskbo11935apLFnbsbiHxEVEvza4a9cMpDiwmFduSrjjgFKFEbhxUfRp3D1XKUniafYjgeQhvY6VjxG3MRSjjTKg1Zw9s6f3D4vsHsHXvy5B8bhRXYY7fhoY5Ub6DbDfKPCHJzw2LAfrfv4U4thBqWshHuPJNjxMGbQWJ1aAPNu2AKX9TvvieEeVrSgjhZ8zu6ySuWbyEnfVgvtuzaZrTxY2u4yeoxkqQmQUoVwUSTj9qzYvVRj2rSs7cmj6NGBMiXMWiaVLLXG9HzRCQMLwpUBpGpeXtX3ec5YEhK2zb2TU8hs7qhzDhgH5Ddnnj1bNndL7u6f9CJ8Q9sXSRAEapy1b1hECmBhBtRJahVfCHqsYh6KkBu4HebwxKSdwWEU7rGskbR8tAaogsadgHNzySV3h2i9TnPVCLZcinJHSpzp2PkcRaD1t8X3JAFBEKEngh8Hz83aoY7fA5y4ZNpAeQqjXybkTm5tarsW5V3pethQET9An4Un154xhupcqzqKRXnvxwEZZq9YeEbN9v6jCkv2Q9GKkuVnijVKd6ngPCmvBStHHewrbz9K6dRCDkkL3gQBAciUPGJU2FX74"]}},"1":{"credentialSubject":{"sensitive":{"userId":["JZfhipxHXQiuysE6ir4QnN2jK1phBwUXfTPsCATPCxhEs2k4ZXk4zKh1PLzEoGXrfk81377ZovDNFyU1VkFVgTn7Ka1tgAdS8nrsJyA289MrTcZP4ipxesY9GCfpvzSaGU5ZDkFm7vYZGHZ2AxzZmtUB7cYTXJSon9GaPdUXwUqkPyRFaxCFT8vfypDcSyQhWbuKWzTZwHPFmvsaEzpfzmwTnV8QmqJ1R18HX9CRcB7nUAMGJMiWd2Gt9dKKxwsnRxpudbkFLKHqfUqWhD6KSVUtkKzeApnvC3mYsVvBMmo4tdTy9pZf2t2dYkHKm9BV7EewWkQsCwcQ5kdNyDFErghoa2cemJrF6qYVH3diCDPujSj4FwNQ2Fg6n5ijQuHY66ck1f5xcyffu7mZDQ2jDe58Wt2wNNEr8ngC2JN7PrwQ7qXVtrxxKPNHb6V5rS2Pu3a8UCa5Z83jCdEXYnnQ2VECgZK86pGTqHeqbNstUb1CFFTbePQWkRv5HPd1eFK1746jJU5wvjjTBZayaRSiyLzhietXA9nmmUgC8ZNDaP77m3NqmzLoXJMriuYFsKoCEsTUs83RiBTMup32LuDo3U811NKumU8hNM85QrjYUnm7T1tS4dkBtNMoU6DgTUSAzTSUHhDGGn6fc5onqFBLrgAzc8oQBY715rwsBz6y5wE6bJeJuLTCg9icPbTEqEaYHXqN8TBftEzUsctuNbbCxpfGBjbgqTkBrN3bJaNTsnWyokCPyf4nPV1GX3XSj1EHzXH8uww97zvRQuC46nGW9TjzmAqhinJcS4wRPvgA8jQW4hnxytRmRnsDmdSbUaoCNvUQNQMzBdbV8qXfWzVp3thNu536WFvvxhfD9V9VNmcUcUWT5SddJQFnqpUhj2X3pQ8Uww7UYAPBGnRmZZGDAFQrcpJmncnePQpMfkkXq3ekjsATB78i5RqATkpo6mQXsnEcsT9W9XCZGGZyBSg6cxHJQ7KugZRUCk1zSBgBc22APXVyoexNmNngfkvWPurUbx5DPojfkg2zrLCNj5QwDtVu9QvmMDAdwdhstd2P25nSs3iDEU8gjjPExqPYbacsATftiqgJ5MsUsahpMmAncQ14kroT9PKgQDYizzsaeqHWyjyh9Nhy62nW88fP3Gyxjs5g6UMkqDXztk1MXEXyYtd53QrxB8a2ecJV8Q7"]}}}}} \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/bddt16-circom-presentation1-0.6.0.json b/tests/anonymous-credentials/serialized-objects/bddt16-circom-presentation1-0.6.0.json new file mode 100644 index 00000000..f233ea79 --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/bddt16-circom-presentation1-0.6.0.json @@ -0,0 +1 @@ +{"version":"0.6.0","nonce":null,"spec":{"credentials":[{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22education%22%3A%7B%22properties%22%3A%7B%22grade%22%3A%7B%22type%22%3A%22string%22%7D%2C%22score1%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score2%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score3%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John"}},"circomPredicates":[{"privateVars":[{"varName":"x","attributeName":{"credentialSubject":{"education":{"grade":null}}}}],"publicVars":[{"varName":"set","value":["7Jjyu46Z91jBSubPtv8jtRmkJdUSvYSMG94sHVD9AfMP","4efTvLXrzMGRJmq3Qj51NYKfhH28tPAqXEfgVUeLPv2w","8RvzAng4VQyWQ6S43RbGtRiLmojjF11rnp61yR1Hpzyu","4QpHmecK8KHacS8ZBASweXV98zqzLiozDA7d4MVn6rWr","6au7i34j8TGJUBm24FzRZ9a6JyAWTp2yjdMXZ3szPjZs"]}],"circuitId":"random2","snarkKeyId":"random1","protocol":"LegoGroth16"}],"sigType":"Bls12381BDDT16Dock2024"}],"attributeEqualities":[],"boundedPseudonyms":{},"unboundedPseudonyms":{}},"proof":"2MmjucpYRY8F32AHrZrnepoMSBjgWpAESqzjNqq4pAgu4KbqRPkmVgbUQqk2dsmF95Fcgh8ujBNuG1wnu7SKdSPUb4dhcGvr5hQZKrBitzB5mydTax7mGDPWTkDfzMxBVpaLZthE9id4BT6abbTmPMqbH6eSUBTAt77uWAFW1yZTHyX2bXdjukV2AHK3H5ZWTquVXJKg4TkhxkXoUjUECUstcpELcnnnhxvgLSHACCghVdtrV8vsxBB46ZDShqc6bcDnRxfSYvF2ujhryg6jpLewhbucSSmYDBDpcCjn8KDCXrM31KVjjJwzHGX86buczQaEkmoNYG82RCVz5GbDkQhi39ENttQj45wAQU93AyEfeBdwi1feQr6Zcg7FmAaBE1e5AvaXsjMheGiogCiZ5yuNzByVuhXCZWT2T9xjNk4G6kLjH9DKBh329NDkUoLkUKvARHfvZgw2x5J6JFrTvffwzq7bG5amUMaYsnNooPVvhcigN7qC3fF2DEpwajZqoyuwc8eXGqbhBSsdL5y4ix3rifhKaZwtkjqrEPssw8n55s1MyBXRoMrxYRQcvJw2hghvajJqeJpY55voYzi29TbAt13862B5WmKmcK6r53cMaYFkihU4rtZmrL5QUzcvxAP1HydfpS4mogwieo5dx1Aq1pxQugFka8DYeRPPWLwTeZgaiKtfbgAqwhXNcf4hmwKb7XcdHwALGQBiLED9ATMBXABmoqVfGHvub8hTUrAU9YTqHBGWZGHfhUcfyAgmPLimdqfdnaauyQekU2Zij2i7dgKRpNj87jkkaZ9uMdxwQqdn3WiYgjh6esifYafZrxqJSZAPAXTZ7p5NE1sNqU68ADHLuywgj6NTWPEc4eL3LuCjXsEhRFr3DRDhKesCs8D7ET7e32Q6F3vYUJGR9XrU9fmWsJV6Yvgzf7aG7tsHiNb2sngwKcomYuW1MdE4wkvKNqJGs5wswusyuPiqvKofHpsc2U9xCmfHYaeMW4CxvgBP8jW8eGG6RYZ7tzwTnRu19Zc2Cgiktd6HYKRrYEiJmNh8aa2tCQpggPYuHbxDSiywNqdyFLD4rgVQtrVmn26nDrjFnKidQwtNfNMqZ8hStDiHkiuWjGbbmdjsabTJMomtFpXCDrRF9m9mPrNgNnigJuExFmdKh6ibVutrpGe1Pb762Syz7YZgZ5sTdDx5d694sbz5bmguvf4N5Ux9eGHsGKHbgSsCVdP7nKK9XRXH9xkc5ze783MHqzFizC6qje5wjbR4Yb6HvbaZa2hJDsX1GM3FUdfgGiiPfCj1vu4y31UK5hmxjrFJDoATc72xAGELFBQubT9Fs7b5tQ1etndB2"} \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/bddt16-circom-presentation2-0.6.0.json b/tests/anonymous-credentials/serialized-objects/bddt16-circom-presentation2-0.6.0.json new file mode 100644 index 00000000..a3e38f98 --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/bddt16-circom-presentation2-0.6.0.json @@ -0,0 +1 @@ +{"version":"0.6.0","nonce":null,"spec":{"credentials":[{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22education%22%3A%7B%22properties%22%3A%7B%22grade%22%3A%7B%22type%22%3A%22string%22%7D%2C%22score1%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score2%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score3%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"Bob"}},"circomPredicates":[{"privateVars":[{"varName":"x","attributeName":{"credentialSubject":{"education":{"grade":null}}}}],"publicVars":[{"varName":"set","value":["7Jjyu46Z91jBSubPtv8jtRmkJdUSvYSMG94sHVD9AfMP","4efTvLXrzMGRJmq3Qj51NYKfhH28tPAqXEfgVUeLPv2w","8RvzAng4VQyWQ6S43RbGtRiLmojjF11rnp61yR1Hpzyu","4QpHmecK8KHacS8ZBASweXV98zqzLiozDA7d4MVn6rWr","6au7i34j8TGJUBm24FzRZ9a6JyAWTp2yjdMXZ3szPjZs"]}],"circuitId":"random2","snarkKeyId":"random1","protocol":"LegoGroth16"}],"sigType":"Bls12381BDDT16Dock2024"}],"attributeEqualities":[],"boundedPseudonyms":{},"unboundedPseudonyms":{}},"proof":"2MmjucpYRY8F5yxkThR5PhNAFq379pM5opiXSSUrg1oubeSJy2EGUx18nLF6yULRPiVLw7i2uqbFnszZ5CBDxxCKK4nRp8sSYHKdePYAJuW9LnfHQxRAJXCNkwDRQ7Gs1dK7BMqWZyWLwa7tiBzMYGWJPRwhRW8WJwD8iguNYkycNMfxo2XEdrx4mjeAggcQNeKP6j2fFd7HnYqMzzAPMxxmxMmJjVsb38n8daZ9sj7ieDJsxyimN2Ac5XWtthzJaxHwSujzsUK47VKYbVcz2f3LqomyxiSBwZo66BmGd76LbLnvyz6GaTnZxK59eAhbPLN5pN6GCnTombGazFZA7AyLRqJ329Mi48JApBMNPYnBg1KJYmWN2DUpba8wdGQYdPEPUc7WbY4p95PEv57Y5o9pEgV18MuzYYbioW4YVNgXvEhMdiUchK2Zc7xtUKwpNdmG4aRkdkK2i9PkTeuBi2UvSpYsbU8sca6ELtrbW7JEY7cMdmcn331By2z7WDMg3QqrBDvM7W6UpsaQcp6MuocCxkoa7kzuKuLoFcaeMG5wAEawx54RjsRzynUK5uQvGoZUwtVrwoVHzQeztZ7x2Z1AE4bqZyo3eTuko15PgHmYY1JLmgr6oWwBvKMuwTUiT9qo9zhFEnnmu9eC9eKpzfZz9KpaBnZgM948ye7FG8FMMGh4LQh7h2kZ9Yivsw1pCPmBYuDriiVreX6bdhJakqjVUfjkbuYvAX8cyyU7jLqTjeR9JvvNY8uwnBkNZY8yZJuC1k1QZymybdELvKkp4wuQMkrks4rFVk1c4jzqU7P1mhY5HCeop2ZcfbGgwZib7cFF2mpoevKzQpMkAvo9xo8ioHaqnJuHY8iSVpF8S7pk4pdVzDy1KAXPz3sgGMMtocQnjB2vwF7C4opnTxR7pCybQyAnQdVnpQVKK2PJfsuFKajULq6PnbUaqbJCkMw2QYqFohv1AVqcQcV8WNkqUKYW6iXeBD9Bp9KpDWd5FvEN2gWFMNGzjHCD6DdtTxmpwGMZfH6nA6Vscd8px8abTUNmSNs3A8wsQR3K5ym37n1E7n3XEhoadWkezYNH6FfRbR7c4X586wspSRcaSzjwjHyGKrBnkxZsGEME9qLZhZNXsH8Ra7QF8KAMN9UTX686JtkJV7sCFHWijmKjLfmBzzzw1sVTu3KJxpKBX8zB3jZ2LyCFYxekzm4EekpAfKaQHPXHb4M3Jgpio1oixBKgqsKN1DCkj31iASDJrwh5Vfj9rU2esn8EBaiPmZ55toS44x9eviQoVEMB4StRL2QxD61HyFT3mc1W3kVd3kWmuV8TTJ4WJh81ATsgmQeaCMLnScKko"} \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/bddt16-presentation-0.6.0.json b/tests/anonymous-credentials/serialized-objects/bddt16-presentation-0.6.0.json new file mode 100644 index 00000000..eaf0ec6d --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/bddt16-presentation-0.6.0.json @@ -0,0 +1 @@ +{"version":"0.6.0","nonce":null,"spec":{"credentials":[{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22BMI%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.01%2C%22type%22%3A%22number%22%7D%2C%22SSN%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableString%22%7D%2C%22city%22%3A%7B%22type%22%3A%22string%22%7D%2C%22country%22%3A%7B%22type%22%3A%22string%22%7D%2C%22email%22%3A%7B%22type%22%3A%22string%22%7D%2C%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22height%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22score%22%3A%7B%22minimum%22%3A-100%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22secret%22%3A%7B%22type%22%3A%22string%22%7D%2C%22timeOfBirth%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22userId%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableCompString%22%7D%2C%22weight%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John","lname":"Smith"}},"bounds":{"credentialSubject":{"timeOfBirth":[{"min":1662010838000,"max":1662010856123,"paramId":"random","protocol":"LegoGroth16"}],"BMI":[{"min":10,"max":40,"paramId":"random","protocol":"LegoGroth16"}],"score":[{"min":-40.5,"max":60.7,"paramId":"random","protocol":"LegoGroth16"}]}},"verifiableEncryptions":{"credentialSubject":{"SSN":[{"chunkBitSize":16,"commitmentGensId":"random-1","encryptionKeyId":"random-2","snarkKeyId":"random-3","protocol":"SAVER"}]}},"sigType":"Bls12381BDDT16Dock2024"},{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22isbool%22%3A%7B%22type%22%3A%22boolean%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22location%22%3A%7B%22properties%22%3A%7B%22city%22%3A%7B%22type%22%3A%22string%22%7D%2C%22country%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22physical%22%3A%7B%22properties%22%3A%7B%22BMI%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.01%2C%22type%22%3A%22number%22%7D%2C%22height%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22weight%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22score%22%3A%7B%22minimum%22%3A-100%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22sensitive%22%3A%7B%22properties%22%3A%7B%22SSN%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableString%22%7D%2C%22email%22%3A%7B%22type%22%3A%22string%22%7D%2C%22secret%22%3A%7B%22type%22%3A%22string%22%7D%2C%22userId%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableCompString%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22timeOfBirth%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John","location":{"country":"USA"}}},"verifiableEncryptions":{"credentialSubject":{"sensitive":{"userId":[{"chunkBitSize":16,"commitmentGensId":"random-1","encryptionKeyId":"random-2","snarkKeyId":"random-3","protocol":"SAVER"}]}}},"sigType":"Bls12381BDDT16Dock2024"},{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialStatus%22%3A%7B%22properties%22%3A%7B%22id%22%3A%7B%22type%22%3A%22string%22%7D%2C%22revocationCheck%22%3A%7B%22type%22%3A%22string%22%7D%2C%22revocationId%22%3A%7B%22type%22%3A%22string%22%7D%2C%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22lessSensitive%22%3A%7B%22properties%22%3A%7B%22department%22%3A%7B%22properties%22%3A%7B%22location%22%3A%7B%22properties%22%3A%7B%22geo%22%3A%7B%22properties%22%3A%7B%22lat%22%3A%7B%22minimum%22%3A-90%2C%22multipleOf%22%3A0.001%2C%22type%22%3A%22number%22%7D%2C%22long%22%3A%7B%22minimum%22%3A-180%2C%22multipleOf%22%3A0.001%2C%22type%22%3A%22number%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22name%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22name%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22location%22%3A%7B%22properties%22%3A%7B%22city%22%3A%7B%22type%22%3A%22string%22%7D%2C%22country%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22rank%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22sensitive%22%3A%7B%22properties%22%3A%7B%22SSN%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableString%22%7D%2C%22email%22%3A%7B%22type%22%3A%22string%22%7D%2C%22phone%22%3A%7B%22type%22%3A%22string%22%7D%2C%22very%22%3A%7B%22properties%22%3A%7B%22secret%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John","lessSensitive":{"location":{"country":"USA"},"department":{"location":{"name":"Somewhere"}}}}},"status":{"id":"dock:accumulator:accumId123","type":"DockVBAccumulator2022","revocationCheck":"membership","accumulated":"5iYSR7j6eCT2nvmKMGE3f88CQ73crNhcesj1Nq6JwkqbvCzuyR9qNYWLpvyJU1h27d","extra":{"blockNo":2010334}},"bounds":{"credentialSubject":{"lessSensitive":{"department":{"location":{"geo":{"lat":[{"min":-30,"max":50,"paramId":"random","protocol":"LegoGroth16"}],"long":[{"min":-10,"max":85,"paramId":"random","protocol":"LegoGroth16"}]}}}}}},"sigType":"Bls12381BDDT16Dock2024"}],"attributeEqualities":[[[0,"credentialSubject.SSN"],[1,"credentialSubject.sensitive.SSN"],[2,"credentialSubject.sensitive.SSN"]],[[0,"credentialSubject.timeOfBirth"],[1,"credentialSubject.timeOfBirth"]],[[0,"credentialSubject.BMI"],[1,"credentialSubject.physical.BMI"]],[[0,"credentialSubject.score"],[1,"credentialSubject.score"]],[[0,"credentialSubject.userId"],[1,"credentialSubject.sensitive.userId"]]],"boundedPseudonyms":{},"unboundedPseudonyms":{}},"proof":"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","attributeCiphertexts":{"0":{"credentialSubject":{"SSN":["P1KrNqmcpHfh6YpcGUnuojwf5NSoqHfMNzDsFTUi3WH8YkHUTmRNjHQmsUnGaJNGssVJxCWsFAGdg3tydF9i4YzCnMwiw6pQ1Lj2rPYWMTJzYZNkDuyNZ5nFDXTUTcSUW8dUs8a1C6XdXLqqQXxCpY2KdMdi6JKjYQRBgHwpRxKQ9yweSNmymao59FoS2KanqKoiAvA4R9FfqTf9GuLotCR6bXoe7bCscj32wsJuNNhZstLo2d2S18eTQX1bN7nLDsUtyVMZq8dRXEpKJce85GhVf4br9989A7r2MLY6N2JFAe9REhiDsvkZhqf8KQUSaETn9bmWeJ3g9sjRfDR9NEiwfMeMpfR6hjftWtojrpBqfNN77tfo9DprWNWyvgoru6vgdVeT3NWv71U8MGtHECZqeCzEY8jhBxHabVvAU5FvY9kg8NhFjQSMd89mnQWAn8R4SA5ji2WAB4rUTDw9J15ZBKsyaDiFz4T7C9HzBDTAKQpDmJYU3qVp3nsJqMRN3t46eN7M6UxEzr38MQqCQAaQQdjgD79tAmimcfFdKa1bMuHbyHwXvE1R1hjQ9QsgEt9iiihvMCS5UJCTXNdaSUxNBtYwUHxFXsosk2qPY8hCAXCX48j8a3gDeCqcWbkhFy9Zhq6s83i3FxvB1krseehvuLPUPb1PRLJmdMGV9rH4HPp8Dg2MtboFbbTZ2BQkUarDQiQvotg5WpGMAjBWFKMXv2yh4oDmHFBGav8X921maH1Z5RHJerN3KDQLP4SQFs1Y6YkVwgYwz6oWufCnH1cwQTFifttci1FVpsYnuf7FyRAGMMBiNQtQT7Q8Sbraxjd82HUYGzfehvD78kvFFxAxddUmGRcXLQ1hgJaHs8QZurRbC35s3Sds31EyeicnjMEdmrysrDjKgGitvAz9q8c46RzSj27pfHMXHd9JzBZQTv7cVDCtFYaio43rqmWVDq24GxgU9jaZumhYxXPbc9tAAyygKJ1ytZk93eoMzxNcTNCMk9eiRzfvyV7kjnh6KDSRpMX2GZrZbxFYNpsXAqTViJxMXpRfsKadEVrPhEEycC7qesfxAi76Cu6PX1QqbTVjqTyELbcCCXtqb4TLRwrQx9Aj87FEeujgeyb5LsuCskzp7mKsiYGhCMq3NYb8jJ4bEmG3spdugfhTmLYgfLPmJvRA5pdXvvGgZUU"]}},"1":{"credentialSubject":{"sensitive":{"userId":["Ks6tRdetz9GxhneTw5zpp51r3DKeWX7312w7uS9n8rbwGMyTJvBWz8QdU7N9KpWbo2FuBtnCyZr6MEJ9k5MghRV2zzkht7pYEEwPPeHxcwPANEmt44bzjYNKEL29YNVxQB6YvQZvR1RcjcAfHBz6ss5q1QvQadGFkFPYauVYHadehaY139wUqycF5dgdownhEtUD8B6BB7vsHpusHksfZnJEeeEmhRwq1LW8iRqHtpsxtpKELFobHJFe8bf5tQoujs7dbzkRcWF28S7JpjmqmERFjwJjVhHcko7WQt5GN5ZPqrx48Hgp2QZm7kZrXgrtTNNuEpnrZ8UoRabXTYgENUrFuuKqHS5p171mgtbHJoyQTqiXGGC2sUjowCYJm6ktF9RG1fJW3n1xHavqNnYKT75dUqYvVuF9K4rSW2fey4DyLW3sWh78hw2s5mGrGqyZ4p668nsfauUy7zjNxrZw8hjyJZ9goB2GGHCeVAGzux3KULCpDnBeMrW5yeXRVzzHWBTxWtyEEzs23RQHAv4nhM7grxekvgprHkbmFTsXXmtkAYs1sXhFnXNLayqY3sz5WpA2wPHWSMo7bGTcxM6eE6c8eaPqHXBZ8eKHCSbumwypK13nGwvafsVivHxGnB3dDsBaid4TuipRjacmY5gTyWkE9ir6bMykP5ya17s9cZEjhEHYGynrAAvBruzvNb1bqsQ3aEGBxTmWTSGMpnBqDJNTE3PyQ2egrXgbcj2ex5fvkiQjmD4myBBx7X4UANeWapWGAngkKWUZPcUJresjfaMjrfjKPfRf7kXdXkH3Ks47nyHyVw6UGg1J7Vw86oMYmG3EZZHw1ghV67o4QMufbZP8tFcUpXNcQzhVBUsW9e2YT2NhkA1uiV4XXTkon31von6bTa4CBBBm56Xe4kdBirAN17cE86ELo9uCvUN3EmYoYRm8FMCYKRf2KC8LbFZ2EfHyqz1HQRGmnetToPMDCeK8HJHP7kuAsvnFrkrp8yYeMknbkhvf6s3qQxLHYiwTBT3rSZLuy26QMbxfhnSwi8LAC3DQZFu4TD1sVe9zo5qFDm7BtbxoaR8kczyAKst8WvPnFn14ouFQ9BGiuTHioVDeG8V7Gv5yRb9c6df91WnCWn7TgeJQ4Gbns4g82jd3SHrH2kb1SW6RyvSkAGjXXH2ZyBphrnGAYZhQWBJ"]}}}}} \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/bddt16_credential1-0.4.0.json b/tests/anonymous-credentials/serialized-objects/bddt16_credential1-0.4.0.json new file mode 100644 index 00000000..83fbcddd --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/bddt16_credential1-0.4.0.json @@ -0,0 +1 @@ +{"cryptoVersion":"0.4.0","credentialSchema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22BMI%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.01%2C%22type%22%3A%22number%22%7D%2C%22SSN%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableString%22%7D%2C%22city%22%3A%7B%22type%22%3A%22string%22%7D%2C%22country%22%3A%7B%22type%22%3A%22string%22%7D%2C%22email%22%3A%7B%22type%22%3A%22string%22%7D%2C%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22height%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22score%22%3A%7B%22minimum%22%3A-100%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22secret%22%3A%7B%22type%22%3A%22string%22%7D%2C%22timeOfBirth%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22userId%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableCompString%22%7D%2C%22weight%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","credentialSubject":{"fname":"John","lname":"Smith","email":"john.smith@example.com","SSN":"123-456789-0","userId":"user:123-xyz-#","country":"USA","city":"New York","timeOfBirth":1662010849619,"height":181.5,"weight":210.4,"BMI":23.25,"score":-13.5,"secret":"my-secret-that-wont-tell-anyone"},"proof":{"type":"Bls12381BDDT16Dock2024","proofValue":"S2jvYUFs4stskxK6hiA9hGR7uqwPNRXRtiQ16BFYHoYHov9M4ud3qKwCYCKtUzyTxHdMdbZ7ojVMugD8Vj543n7N9txZRGLbnaVTc3Pih5cbUfekcNBNEu73yAPA5q7szbTQPME2v6KRZMWM5To2UW9aL"}} \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/bddt16_credential2-0.4.0.json b/tests/anonymous-credentials/serialized-objects/bddt16_credential2-0.4.0.json new file mode 100644 index 00000000..7a8ad4c4 --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/bddt16_credential2-0.4.0.json @@ -0,0 +1 @@ +{"cryptoVersion":"0.4.0","credentialSchema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22isbool%22%3A%7B%22type%22%3A%22boolean%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22location%22%3A%7B%22properties%22%3A%7B%22city%22%3A%7B%22type%22%3A%22string%22%7D%2C%22country%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22physical%22%3A%7B%22properties%22%3A%7B%22BMI%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.01%2C%22type%22%3A%22number%22%7D%2C%22height%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22weight%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22score%22%3A%7B%22minimum%22%3A-100%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22sensitive%22%3A%7B%22properties%22%3A%7B%22SSN%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableString%22%7D%2C%22email%22%3A%7B%22type%22%3A%22string%22%7D%2C%22secret%22%3A%7B%22type%22%3A%22string%22%7D%2C%22userId%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableCompString%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22timeOfBirth%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","credentialSubject":{"fname":"John","lname":"Smith","isbool":true,"sensitive":{"secret":"my-secret-that-wont-tell-anyone","email":"john.smith@example.com","SSN":"123-456789-0","userId":"user:123-xyz-#"},"location":{"country":"USA","city":"New York"},"timeOfBirth":1662010849619,"physical":{"height":181.5,"weight":210,"BMI":23.25},"score":-13.5},"proof":{"type":"Bls12381BDDT16Dock2024","proofValue":"X4FG2Wfoy7G7K9JvCDDPeL24646AeNNF8BaSDWTe799JoqTH5xwLmDhkEf4JeeYyWkqRNm2EeGnYjQGWMBdt7bv5yfniZ15oRBqiZYYnVVw9pzE7M1LN6S69CGS4tkaFLRvaZ2TazeAZCjpWnaoRjBpUv"}} \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/bddt16_credential3-0.4.0.json b/tests/anonymous-credentials/serialized-objects/bddt16_credential3-0.4.0.json new file mode 100644 index 00000000..c22f6a65 --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/bddt16_credential3-0.4.0.json @@ -0,0 +1 @@ +{"cryptoVersion":"0.4.0","credentialSchema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialStatus%22%3A%7B%22properties%22%3A%7B%22id%22%3A%7B%22type%22%3A%22string%22%7D%2C%22revocationCheck%22%3A%7B%22type%22%3A%22string%22%7D%2C%22revocationId%22%3A%7B%22type%22%3A%22string%22%7D%2C%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22lessSensitive%22%3A%7B%22properties%22%3A%7B%22department%22%3A%7B%22properties%22%3A%7B%22location%22%3A%7B%22properties%22%3A%7B%22geo%22%3A%7B%22properties%22%3A%7B%22lat%22%3A%7B%22minimum%22%3A-90%2C%22multipleOf%22%3A0.001%2C%22type%22%3A%22number%22%7D%2C%22long%22%3A%7B%22minimum%22%3A-180%2C%22multipleOf%22%3A0.001%2C%22type%22%3A%22number%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22name%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22name%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22location%22%3A%7B%22properties%22%3A%7B%22city%22%3A%7B%22type%22%3A%22string%22%7D%2C%22country%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22rank%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22sensitive%22%3A%7B%22properties%22%3A%7B%22SSN%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableString%22%7D%2C%22email%22%3A%7B%22type%22%3A%22string%22%7D%2C%22phone%22%3A%7B%22type%22%3A%22string%22%7D%2C%22very%22%3A%7B%22properties%22%3A%7B%22secret%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","credentialSubject":{"fname":"John","lname":"Smith","sensitive":{"very":{"secret":"my-secret-that-wont-tell-anyone"},"email":"john.smith@acme.com","phone":"801009801","SSN":"123-456789-0"},"lessSensitive":{"location":{"country":"USA","city":"New York"},"department":{"name":"Random","location":{"name":"Somewhere","geo":{"lat":-23.658,"long":2.556}}}},"rank":6},"credentialStatus":{"type":"DockVBAccumulator2022","id":"dock:accumulator:accumId123","revocationCheck":"membership","revocationId":"user:A-123"},"proof":{"type":"Bls12381BDDT16Dock2024","proofValue":"bsDAAJnGaLaarMNw3nAxoueq57YAGfcFrqnkTMRLW9mHnsTGgLzXq9oiaJXwEtFESsmG43jGK6ga2gsi6P8eUDReNbm8kvcYnJF3FmibcCjsUoHW2CyuvxfuUvnb8VTooEMBDcetKPEMqgxsu4DSisPGJ"}} \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/bddt16_credential4-0.4.0.json b/tests/anonymous-credentials/serialized-objects/bddt16_credential4-0.4.0.json new file mode 100644 index 00000000..6d3628e7 --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/bddt16_credential4-0.4.0.json @@ -0,0 +1 @@ +{"cryptoVersion":"0.4.0","credentialSchema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialStatus%22%3A%7B%22properties%22%3A%7B%22id%22%3A%7B%22type%22%3A%22string%22%7D%2C%22revocationCheck%22%3A%7B%22type%22%3A%22string%22%7D%2C%22revocationId%22%3A%7B%22type%22%3A%22string%22%7D%2C%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22education%22%3A%7B%22properties%22%3A%7B%22studentId%22%3A%7B%22type%22%3A%22string%22%7D%2C%22transcript%22%3A%7B%22properties%22%3A%7B%22CGPA%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.01%2C%22type%22%3A%22number%22%7D%2C%22rank%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22scores%22%3A%7B%22properties%22%3A%7B%22english%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22geography%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22history%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22mathematics%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22science%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22university%22%3A%7B%22properties%22%3A%7B%22name%22%3A%7B%22type%22%3A%22string%22%7D%2C%22registrationNumber%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22sensitive%22%3A%7B%22properties%22%3A%7B%22SSN%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableString%22%7D%2C%22email%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","credentialSubject":{"fname":"John","lname":"Smith","sensitive":{"email":"john.smith@example.edu","SSN":"123-456789-0"},"education":{"studentId":"s-22-123450","university":{"name":"Example University","registrationNumber":"XYZ-123-789"},"transcript":{"rank":100,"CGPA":2.57,"scores":{"english":60,"mathematics":70,"science":50,"history":45,"geography":40}}}},"credentialStatus":{"type":"DockVBAccumulator2022","id":"dock:accumulator:accumId124","revocationCheck":"membership","revocationId":"tran:2022-YZ4-250"},"proof":{"type":"Bls12381BDDT16Dock2024","proofValue":"aSRkR8CpgLqMZjispfcCKYWVmhGvWftKrLXb7rxPJG75CTq24qbcjF1kExJTzkEAqwzwGxhkZVott8RynbMdHEbXHAmYK2A88qu5ubyyhnD2wfRajxUHsxG7wR3HXr2mGLhSCfG8TUhmLE9XZrf4VSCUD"}} \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/bddt16_credential5-0.4.0.json b/tests/anonymous-credentials/serialized-objects/bddt16_credential5-0.4.0.json new file mode 100644 index 00000000..a912bfb2 --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/bddt16_credential5-0.4.0.json @@ -0,0 +1 @@ +{"cryptoVersion":"0.4.0","credentialSchema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22items%22%3A%5B%7B%22properties%22%3A%7B%22location%22%3A%7B%22properties%22%3A%7B%22geo%22%3A%7B%22properties%22%3A%7B%22lat%22%3A%7B%22minimum%22%3A-90%2C%22multipleOf%22%3A0.001%2C%22type%22%3A%22number%22%7D%2C%22long%22%3A%7B%22minimum%22%3A-180%2C%22multipleOf%22%3A0.001%2C%22type%22%3A%22number%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22name%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22name%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%7B%22properties%22%3A%7B%22location%22%3A%7B%22properties%22%3A%7B%22geo%22%3A%7B%22properties%22%3A%7B%22lat%22%3A%7B%22minimum%22%3A-90%2C%22multipleOf%22%3A0.001%2C%22type%22%3A%22number%22%7D%2C%22long%22%3A%7B%22minimum%22%3A-180%2C%22multipleOf%22%3A0.001%2C%22type%22%3A%22number%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22name%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22name%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%7B%22properties%22%3A%7B%22location%22%3A%7B%22properties%22%3A%7B%22geo%22%3A%7B%22properties%22%3A%7B%22lat%22%3A%7B%22minimum%22%3A-90%2C%22multipleOf%22%3A0.001%2C%22type%22%3A%22number%22%7D%2C%22long%22%3A%7B%22minimum%22%3A-180%2C%22multipleOf%22%3A0.001%2C%22type%22%3A%22number%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22name%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22name%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%5D%2C%22type%22%3A%22array%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","credentialSubject":[{"name":"Random","location":{"name":"Somewhere","geo":{"lat":-23.658,"long":2.556}}},{"name":"Random-1","location":{"name":"Somewhere-1","geo":{"lat":35.01,"long":-40.987}}},{"name":"Random-2","location":{"name":"Somewhere-2","geo":{"lat":-67,"long":-10.12}}}],"proof":{"type":"Bls12381BDDT16Dock2024","proofValue":"TKBkuiQfzJZmsvYZ4dnNBDVGUfubtX9Fb35KvyNUMc5JxKT6pi5148caT6S82kiU1527y5raVTuM4oPMeGcSq5qu7QfKGpwj5YdGHE4aCjD7sLKgtPLEQ7HdbgUttNFsdyjyiCNC6cXeeBxitf6DDKdTR"}} \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/bddt16_sk1.bin b/tests/anonymous-credentials/serialized-objects/bddt16_sk1.bin new file mode 100644 index 00000000..80f2ef8a --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/bddt16_sk1.bin @@ -0,0 +1 @@ +ë’¡õ2 .PÏÞúèã‚è°ï`ÑUÞŠÝ-Ã9 \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/bddt16_sk2.bin b/tests/anonymous-credentials/serialized-objects/bddt16_sk2.bin new file mode 100644 index 00000000..47152fe4 --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/bddt16_sk2.bin @@ -0,0 +1 @@ +åÅd£Ð$ÂH­=ØÎþ –avRÖDQÒê5 TL \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/bddt16_sk3.bin b/tests/anonymous-credentials/serialized-objects/bddt16_sk3.bin new file mode 100644 index 00000000..a06837ce --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/bddt16_sk3.bin @@ -0,0 +1 @@ +j¯+NðL×Á}#,,'6<¾îRh±4Ó¶{(c \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/ps-circom-presentation1-0.5.0.json b/tests/anonymous-credentials/serialized-objects/ps-circom-presentation1-0.5.0.json new file mode 100644 index 00000000..61cc04c6 --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/ps-circom-presentation1-0.5.0.json @@ -0,0 +1 @@ +{"version":"0.5.0","nonce":null,"spec":{"credentials":[{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22education%22%3A%7B%22properties%22%3A%7B%22grade%22%3A%7B%22type%22%3A%22string%22%7D%2C%22score1%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score2%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score3%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John"}},"circomPredicates":[{"privateVars":[{"varName":"x","attributeName":{"credentialSubject":{"education":{"grade":null}}}}],"publicVars":[{"varName":"set","value":["7Jjyu46Z91jBSubPtv8jtRmkJdUSvYSMG94sHVD9AfMP","4efTvLXrzMGRJmq3Qj51NYKfhH28tPAqXEfgVUeLPv2w","8RvzAng4VQyWQ6S43RbGtRiLmojjF11rnp61yR1Hpzyu","4QpHmecK8KHacS8ZBASweXV98zqzLiozDA7d4MVn6rWr","6au7i34j8TGJUBm24FzRZ9a6JyAWTp2yjdMXZ3szPjZs"]}],"circuitId":"random2","snarkKeyId":"random1","protocol":"LegoGroth16"}],"sigType":"Bls12381PSSignatureDock2023"}],"attributeEqualities":[],"boundedPseudonyms":{},"unboundedPseudonyms":{}},"proof":"MBQ2m5mgwJRLx4JE2xfxFrGB7MVoDZzHddwwJx91PLduNeL1wxvF3HWtgchizs4FAc6tpW4gD9S7zsQFkpeAYuPxNatkxtSVdq6QFsEdtpTfWNonpLkwPvLm4MPvSQGpSw6mdgYmg6v7Jtei5Z23H9UR9TMuxC51XDWRBFszqJrgMdbGfsftzeGWW6ZbwdrU2T5KQrZr3EbnWisp4xh9VnnmMV53LQfxEnc6Gt4N3Gv3hGh1sqaPAkfm4fdASYRkxAtp4t19KVRHExXsVDCmfWx17iwJfV4mQBWTSk5LzZxiy5BMd6QqW75mqKToE6nvH8KyX8qmFRvoLVBGm8jHUN3khME8XZkCWZJ23LGrKj3ikTjKu64Q4Uq8Fs3mvVfzkb41yMG9Cofi69hi845Cj7BThY5XxYhjASyLpkJyrvi8rgKTxmLjUs4q8Sc7cFxRxjJzSA7MuvCKqFM5SnNENLmRcZUTwLdDiDWgA7pw2MnH9NyjnzRakktLCNYq25SwXx9X7Ed5pnkHEHstJTbcxSsnJ5z5hcqE4tVAEo8Gk4WYSXBZuwTKRTYWPWYevGduXK2id6Vx9qosvo5N8Fvp77Yct5rHR7pzawiNvdKtcfXZKdbp3cyuFywM7zFphixLRUVQDScMKDY7iqa7VmS1JQpnAvVVksF2iUE2BNDb1ymmKGgRyaV9PAz2uLLvqJEraGwgdNUbNT7y11wNwwXzpP1WbCJSpXU37CKDP7A22kpCXWWu5fQyxviQJeWTNF2eVbmeg2hckDuuc8fbBX95m6JweXcFgJyVqxuGwrVzaFhM3iZY11tVW9jx1gE6rqgZYN22dYjhNy6wkVsNT8bRwRirbMSvcFP9Cza96mbwUS3D6QBtTN9wJ21yKwA6ircwLtKky5pPNBZKhhgY8xyowmm91wJMGXWebCiHkXJJycurt4Waxap6dzKyMQJbxu1JrzCfFhLGDV41Uj8do7SvW2AT7umDEBPXn17XEN4PFqckrEmSEmbFeKf9LP7JGzMRuHekGKJry79vCoaacv7tVJR4X87ZVB9CgDLCyRkH78x1xNa7bmSVpX5tq91VBYC4aRAroCQiY7R9QJBNwarrfuH6qkff9ANtMLrJtjV8dFzWB2Y3vsxQs3gREaqdqtXBXx6HL5QEJoZrGZqU21hVcbpoDFfwoMCvMN9GcS5ZDfmDxnZVDYqttD7cwaZ3hub1ju2zYYdAFEa4PDv63eGo5qd31MyvhSRhDHaB8W47L9GX8UjqquvRfJGLD5jRhzabyML6stJQbJ3R4yAtFo9239QQno"} \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/ps-circom-presentation1-0.6.0.json b/tests/anonymous-credentials/serialized-objects/ps-circom-presentation1-0.6.0.json new file mode 100644 index 00000000..003e6211 --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/ps-circom-presentation1-0.6.0.json @@ -0,0 +1 @@ +{"version":"0.6.0","nonce":null,"spec":{"credentials":[{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22education%22%3A%7B%22properties%22%3A%7B%22grade%22%3A%7B%22type%22%3A%22string%22%7D%2C%22score1%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score2%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score3%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John"}},"circomPredicates":[{"privateVars":[{"varName":"x","attributeName":{"credentialSubject":{"education":{"grade":null}}}}],"publicVars":[{"varName":"set","value":["7Jjyu46Z91jBSubPtv8jtRmkJdUSvYSMG94sHVD9AfMP","4efTvLXrzMGRJmq3Qj51NYKfhH28tPAqXEfgVUeLPv2w","8RvzAng4VQyWQ6S43RbGtRiLmojjF11rnp61yR1Hpzyu","4QpHmecK8KHacS8ZBASweXV98zqzLiozDA7d4MVn6rWr","6au7i34j8TGJUBm24FzRZ9a6JyAWTp2yjdMXZ3szPjZs"]}],"circuitId":"random2","snarkKeyId":"random1","protocol":"LegoGroth16"}],"sigType":"Bls12381PSSignatureDock2023"}],"attributeEqualities":[],"boundedPseudonyms":{},"unboundedPseudonyms":{}},"proof":"5aAkSr7VzAPHJTaMdEyQPrDxJkcXQh6jHTVm2MCL7sfimnAHyrprrTQ5uvrZAwPV8cbQyXbpQ9Fkj7SCxExzu65J5SMLUcfrY12DyPFsVxcVfNhxhBNHQKRsJyjMGGhHe9BNSXiBaL1hrNDd3PfJHM3b1zYvy1stXRrgh6sCG6UgpXekdcYqeHinEE5VAxevYAxWkDFRwz6CHY6Gh2eyK5URDfg7PZrBhoVmR9aNWHa2gqzSQtJt7cvhpeEEdBuKZ3UYUtuE6XRiMGSHsxi36FumPF7xzvuSxuZ3xnqiKgRtN6unqAGKfx3pGgRzCEridsECe3CLpGmawqqwANvQsg9x5dLgQV72dnxXHossFsstxfvPukoZPwHRd2xiLiyPX224Un9RJCrsytD3zQUk3SNQKbTPYnjW8Y8QCJXBcChtF44qLzDjBzhvt2imisXsWjVHfxDGUZvC3MgkRrp49DXtooRZjimw13GJHe2qhGRMAFkQL9YfRaVGWGToK45JkpgL8GBZkpNDEPVF1X7Px7Bm9Sz3yAX5MSbj8DSunCUrYdkULEFkZ1SMsrJzU7jqrr3KcrsM5PzXGjm2SRzxYAFNtP3eRAgCvN15jb4S1tBRhn38zZ37Vu7tiWCLRYdY49WTaEn5JDq5cuCwQ4Hs6SPVQ9a3MakXD4SNzoxnKbhZbwUvtN2yzMh3RE7YT5goy7jxvcpB9gBZJ7LWPUV4mUWudP5Rn2mDq8L6N9bWBaFJeusHRCDGVqDog8jypEUeAerTpXZtw1cqY4PY3hYt4h1pWoAAETX9RARZTQCj3nsfAwXLk1a41pMdfkGAJMrYapQxgan11kjCe4fwWfUBfn1tfWLueGpmCvEgz9V7K4g29DDY9Ey4637gT61gSh7q7tokEho9CguhtLu46hRvqotsQbzhmiu1yt9ee1veynMymPwSkjTgo53dEjftAn16PSPQUwDN5VF7mrgUwPGByYReedXe1UmsZZXKYSDgonGDdmghn9v5if9b9own3VpXZchppTrEV2NxyBpzg28A4JAE6W1981T8irH7ZB89jQk7ddaztn2QSWdb6USSaNU4W8mw4agBWGQNaQV6Xv9XGtVXsXTSbvoePRYyHvaxTp2aCgvGTXHYA2YtQDLe8Qkcn8q9LkS1d92eCzuGwbQNiVqbfLH5QEQxDpqKXzuvQciD46JUV2YW7cktRjAoY8ndK5NqdZoH5W1FcasysqxQ7zi2qSD5ugZtJYSjx4A6MZegnkHQ6YCFaqDGGpyikoCchTWitM82PWSCNcJRnu7AXArJF"} \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/ps-circom-presentation2-0.5.0.json b/tests/anonymous-credentials/serialized-objects/ps-circom-presentation2-0.5.0.json new file mode 100644 index 00000000..676e62c9 --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/ps-circom-presentation2-0.5.0.json @@ -0,0 +1 @@ +{"version":"0.5.0","nonce":null,"spec":{"credentials":[{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22education%22%3A%7B%22properties%22%3A%7B%22grade%22%3A%7B%22type%22%3A%22string%22%7D%2C%22score1%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score2%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score3%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"Bob"}},"circomPredicates":[{"privateVars":[{"varName":"x","attributeName":{"credentialSubject":{"education":{"grade":null}}}}],"publicVars":[{"varName":"set","value":["7Jjyu46Z91jBSubPtv8jtRmkJdUSvYSMG94sHVD9AfMP","4efTvLXrzMGRJmq3Qj51NYKfhH28tPAqXEfgVUeLPv2w","8RvzAng4VQyWQ6S43RbGtRiLmojjF11rnp61yR1Hpzyu","4QpHmecK8KHacS8ZBASweXV98zqzLiozDA7d4MVn6rWr","6au7i34j8TGJUBm24FzRZ9a6JyAWTp2yjdMXZ3szPjZs"]}],"circuitId":"random2","snarkKeyId":"random1","protocol":"LegoGroth16"}],"sigType":"Bls12381PSSignatureDock2023"}],"attributeEqualities":[],"boundedPseudonyms":{},"unboundedPseudonyms":{}},"proof":"MBQ2m5mgwJRMGzRezPhf6XAoZBFbfvgs5BKzFH3s8TyzCzn6s4w4S1hmxsb7i3i3CN3yNbzpPKjtKHrugv1B5CwL1GWHetuCN9rxQ2BBGqVxPosJTRodhiVMwE1deMyZupV3k6hv2FDh9FY8VgKbzv2evHG6Mnd9bGFya63Z63Pp9QeG9HuNAano4RU1J9N9driSbU6TRJNL2rPCjwzNcsZgrvmLEsYRJXL1yf5swADnfkfr2NziEiVYUxMgjGambso32yXwNXJQJDwSwVCam1gTf7SfAbaqf2SMQvjdxdGFbmttPZSnt1zmF8zjZbbobudmZsz5K7ATq9dNTnHcZabNr5kvSj22jntfdzJJBayeTKBgdu2rEds8WaE4xB2CoBZAJgP2xEke4SurjC2fLp8mphpRp7vFWewbXXZs6kQmr65y1qLoRDkSWrsTG3h95fyU9SjQqvrMsUHq181xcaRbeAUhr7UULrSqV5Y81fZZhv6EqUn9Tu5aiWoGBESSyv6pooeL6Lf6gaXYzkzwUp2iAJdELP4DZEMkVsM96JkYWNQxR3M9Dy7eXRZnRTWHh6CWyVt99vAtgSxux7Y74VjENuF7gHrY1GFWzjgKF72jmUYKbYVwZMjXMERzry4aCGsP87G58vpMarDczDZtbqwCGACHWSB28boKoF9E2jewKfVS8RULDhxbEDBEa8zTy5Ds6zckNeCoi64aDPuyKxJd2f6EBqDGy9icPc6Rd5TeW1frEbUZMPmCLHBQ7duLQgWDfiPpzLyYbv2ZGFJpMbFW2b6h1oaDigMyZXmcvCpis8Ajo1ngaVo4Vd2EGuWM81S1AemmLMdgGTp5e6sZTiKeBW5fWEMXHcHExv4ouxQV9163AJghBWNbkMx3qqnwrFTUDRjyNvFficNtUstq4oApsonp9teqguSHaDmd6SaYjhcRY4eQheNjCkBi33U5NoYKHNNp4HrkE99uBdupCXQGDrbwok6zFMTLPgQd8iLUQFfaHxZNqZtvKdtFA3mWt5b478jepPo12QWoQDPEFhcjZA3ePYMSewGc8FGvXL4Ba5AmbjMvrqeFbWXsEs2ZfvH1XBtugHaX6jULtLy37h3oWYqLrUvZPBD1tnz4Ae3zFER1RYvhBw9zWJZoHCAdJBGxmwDEtQ5je7BH9EK9fZibrrSczn9U33FSA7xbuxz2GSUpLobJjEx1QT2S4dcCvQ2kK3QDv7dxbvMdu6bjRChMhcML81RZAPReMxVcjTwMJ4Nybyr2VgRrDFBewj13MWQRfakf6NRnEBn4sWSUnJXF5V"} \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/ps-circom-presentation2-0.6.0.json b/tests/anonymous-credentials/serialized-objects/ps-circom-presentation2-0.6.0.json new file mode 100644 index 00000000..f6adf613 --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/ps-circom-presentation2-0.6.0.json @@ -0,0 +1 @@ +{"version":"0.6.0","nonce":null,"spec":{"credentials":[{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22education%22%3A%7B%22properties%22%3A%7B%22grade%22%3A%7B%22type%22%3A%22string%22%7D%2C%22score1%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score2%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22score3%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"Bob"}},"circomPredicates":[{"privateVars":[{"varName":"x","attributeName":{"credentialSubject":{"education":{"grade":null}}}}],"publicVars":[{"varName":"set","value":["7Jjyu46Z91jBSubPtv8jtRmkJdUSvYSMG94sHVD9AfMP","4efTvLXrzMGRJmq3Qj51NYKfhH28tPAqXEfgVUeLPv2w","8RvzAng4VQyWQ6S43RbGtRiLmojjF11rnp61yR1Hpzyu","4QpHmecK8KHacS8ZBASweXV98zqzLiozDA7d4MVn6rWr","6au7i34j8TGJUBm24FzRZ9a6JyAWTp2yjdMXZ3szPjZs"]}],"circuitId":"random2","snarkKeyId":"random1","protocol":"LegoGroth16"}],"sigType":"Bls12381PSSignatureDock2023"}],"attributeEqualities":[],"boundedPseudonyms":{},"unboundedPseudonyms":{}},"proof":"5aAkSr7VzAPHNkNSptpGt6UbZfaDPQwoEdn5pBtQ93335z3WsmPfqiPqFUKc3xScPWh6XGdfNpkFM1CJq1gTkYhrcrjS549evH4ANyubxFAHB9ojvZopHUXSb33Qi6CumbKb9rn4rg24f7vGkCdPRuLrpsLT1jTxkP59tT1Wm63Wujyj5NGEuhNHg9iv4eTkdvhZMiszUAfmPLzVq8YWH3GRcMqsFmky79DZYyHX2sESnWtmj4gu1A6ByEC42pmzZdNKXNZ9a2m7BgtxU4XCvdChREvcbQTVAwNzTMwaZXXhfmCjVGpGGFoar1LJA4Bbg8CivEZDuQhJiJ2GePbFeXTDLncTTW3KWRNnJySpvZYuNoNEaikM2Y74rhsvk66zyuyC3sqmtGPHexbuS1YvmsqifyjSvuTBVdUiAP8Aoiz8bK543Vy5aMtFJ6bWW5SE2A3CbSrAF1GRTQZH9L3eKV633gwTqUnpKacWjrgJxR5Mxmq8nV5e95i8WUSWeyM14TB6mYpYNzCr8tc4gXdAyLa6joJWE5iNNyAoKoT5Ghtw5rcy2afpwM8DtSKYWhLKvqjoXzmKY1WHFgghWGtgDb7htsVE2CQQZFcGZWZyr9ZoiJBVTcYtjKcawUWozv2titjLqiDi7sKe8gcN7edjQWSkArvc2mom3W9dukzmmYzkptbMnosrTYLGLLJd29yVZu7sX85ZrtyMwZVWcN4fw6KYbFGSbcEiRNkoaeNw2qM6qLkCGHqZkkTqDsnbm3ePUSsEWxwofnpRbWc1ToktWPmkL3LL5DkDaAWhM9T4nfSe2CikBzQdM7QRcnH2Y6V1chodLN1rxUvM3wpY5LG4cLHLgdJzhfsvoNh5iwBjQUno2oWbBPMe69zACiMxdoh5ugoFkgNpLmFp9Z7WgU9gQg6ibJPd7CzdcQysLx2B7tdEQhQrg9JGTVXUn4pWBxZHbSpnFku2iozneuwYyCjq2dPWUU8sqm6oEkewNQDirvNrYtA7bkZnhqKbqY3HRtsRckADQis4ZP9vWB5gRxXHfe9SPTy5Ns6Pqpv5USSKPvcfn1Mnh5bDFSc46ev8SdHEtKTRkHbqubRSBtH5p6EcxadaezDv4mJexbmMQTthQBHgAa1P2HWMyaeycnDE2wWtKVMYA3wrX5pzkvMz1GtU76LdzCYqswQUKYpHBREigwAea2M3n2ee6ojcZzD5dc29wdpFu4Ewkku8fHArbXf8R4AMMS4MM9foLBgeUEbxuFPPkrU7H8XL9xMURKf8uupJrHWB6T9PigcDfXftA26N1kEpB"} \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/ps-presentation-0.5.0.json b/tests/anonymous-credentials/serialized-objects/ps-presentation-0.5.0.json new file mode 100644 index 00000000..2c94641d --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/ps-presentation-0.5.0.json @@ -0,0 +1 @@ +{"version":"0.5.0","nonce":null,"spec":{"credentials":[{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22BMI%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.01%2C%22type%22%3A%22number%22%7D%2C%22SSN%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableString%22%7D%2C%22city%22%3A%7B%22type%22%3A%22string%22%7D%2C%22country%22%3A%7B%22type%22%3A%22string%22%7D%2C%22email%22%3A%7B%22type%22%3A%22string%22%7D%2C%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22height%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22score%22%3A%7B%22minimum%22%3A-100%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22secret%22%3A%7B%22type%22%3A%22string%22%7D%2C%22timeOfBirth%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22userId%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableCompString%22%7D%2C%22weight%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John","lname":"Smith"}},"bounds":{"credentialSubject":{"timeOfBirth":[{"min":1662010838000,"max":1662010856123,"paramId":"random","protocol":"LegoGroth16"}],"BMI":[{"min":10,"max":40,"paramId":"random","protocol":"LegoGroth16"}],"score":[{"min":-40.5,"max":60.7,"paramId":"random","protocol":"LegoGroth16"}]}},"verifiableEncryptions":{"credentialSubject":{"SSN":[{"chunkBitSize":16,"commitmentGensId":"random-1","encryptionKeyId":"random-2","snarkKeyId":"random-3","protocol":"SAVER"}]}},"sigType":"Bls12381PSSignatureDock2023"},{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22isbool%22%3A%7B%22type%22%3A%22boolean%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22location%22%3A%7B%22properties%22%3A%7B%22city%22%3A%7B%22type%22%3A%22string%22%7D%2C%22country%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22physical%22%3A%7B%22properties%22%3A%7B%22BMI%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.01%2C%22type%22%3A%22number%22%7D%2C%22height%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22weight%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22score%22%3A%7B%22minimum%22%3A-100%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22sensitive%22%3A%7B%22properties%22%3A%7B%22SSN%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableString%22%7D%2C%22email%22%3A%7B%22type%22%3A%22string%22%7D%2C%22secret%22%3A%7B%22type%22%3A%22string%22%7D%2C%22userId%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableCompString%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22timeOfBirth%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John","location":{"country":"USA"}}},"verifiableEncryptions":{"credentialSubject":{"sensitive":{"userId":[{"chunkBitSize":16,"commitmentGensId":"random-1","encryptionKeyId":"random-2","snarkKeyId":"random-3","protocol":"SAVER"}]}}},"sigType":"Bls12381PSSignatureDock2023"},{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialStatus%22%3A%7B%22properties%22%3A%7B%22id%22%3A%7B%22type%22%3A%22string%22%7D%2C%22revocationCheck%22%3A%7B%22type%22%3A%22string%22%7D%2C%22revocationId%22%3A%7B%22type%22%3A%22string%22%7D%2C%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22lessSensitive%22%3A%7B%22properties%22%3A%7B%22department%22%3A%7B%22properties%22%3A%7B%22location%22%3A%7B%22properties%22%3A%7B%22geo%22%3A%7B%22properties%22%3A%7B%22lat%22%3A%7B%22minimum%22%3A-90%2C%22multipleOf%22%3A0.001%2C%22type%22%3A%22number%22%7D%2C%22long%22%3A%7B%22minimum%22%3A-180%2C%22multipleOf%22%3A0.001%2C%22type%22%3A%22number%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22name%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22name%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22location%22%3A%7B%22properties%22%3A%7B%22city%22%3A%7B%22type%22%3A%22string%22%7D%2C%22country%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22rank%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22sensitive%22%3A%7B%22properties%22%3A%7B%22SSN%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableString%22%7D%2C%22email%22%3A%7B%22type%22%3A%22string%22%7D%2C%22phone%22%3A%7B%22type%22%3A%22string%22%7D%2C%22very%22%3A%7B%22properties%22%3A%7B%22secret%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John","lessSensitive":{"location":{"country":"USA"},"department":{"location":{"name":"Somewhere"}}}}},"status":{"id":"dock:accumulator:accumId123","type":"DockVBAccumulator2022","revocationCheck":"membership","accumulated":"5iYSR7j6eCT2nvmKMGE3f88CQ73crNhcesj1Nq6JwkqbvCzuyR9qNYWLpvyJU1h27d","extra":{"blockNo":2010334}},"bounds":{"credentialSubject":{"lessSensitive":{"department":{"location":{"geo":{"lat":[{"min":-30,"max":50,"paramId":"random","protocol":"LegoGroth16"}],"long":[{"min":-10,"max":85,"paramId":"random","protocol":"LegoGroth16"}]}}}}}},"sigType":"Bls12381PSSignatureDock2023"}],"attributeEqualities":[[[0,"credentialSubject.SSN"],[1,"credentialSubject.sensitive.SSN"],[2,"credentialSubject.sensitive.SSN"]],[[0,"credentialSubject.timeOfBirth"],[1,"credentialSubject.timeOfBirth"]],[[0,"credentialSubject.BMI"],[1,"credentialSubject.physical.BMI"]],[[0,"credentialSubject.score"],[1,"credentialSubject.score"]],[[0,"credentialSubject.userId"],[1,"credentialSubject.sensitive.userId"]]],"boundedPseudonyms":{},"unboundedPseudonyms":{}},"proof":"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","attributeCiphertexts":{"0":{"credentialSubject":{"SSN":["HRjsLzqxShHMzngTAYjqrUtyzb2krbdeUqaS7eFeRiEeXZkbohHGepFyEGLNffVUjSX97VnAaPf31bC7GGtoR4sj5oYNNyVjofPameTCmTz8ocABAeAkBQ1kqhxbxt9orY5PjAHBJ1xVZmvSfb4yJGLbj6yLfxjuXrRrSR8uwvUHoZtkYYiyRWoB7ZLW5PNbogkTUEUqoSeVZzd4gKwvSGd974js2m5hRroK28AeQHabhwA5ddxdTE6uR4TGQziHBbBkCUwq8QaAgrmTifNDUHker2r8kQxK4ojB1F7voP9BrdcaG2w1vATheJ1qnBUsnhc3UwBzq62fZ6R3qtfy1hysXHvDvgQ5ZjMij18rJhPJNMoJe3fwiWzU9PPGxxxjMJ2VXtbF9ksg7mqwwjj4Tt7zeov9zKSfFah6fsjVBnJCXVBxvh5ieQ5PSMbRSMY7rtvP6DaXwzwRJvMYXh45Z1hHQvHNvGxQzqB9EQBQDQZ25aHeXKU7kJ7GLkjHjHDdqpNBsotzeDkX1L5mCy9nhBKXZRtXMbPyepW7CtDtoN7EwGPjkCu4eYpynR6JN4Bp5whkM9yh1vPWZCQTjBYj9nis2hYXKY8jEdNFaULbMJ1yyX7EryPyyZrpqvgkpoGBAXdf1nWK7NkHK3WrmcsmedLaVoT1HQC7Vvt9ewxwBnhgQtxbXn58fWTiKPuc7QhUiS7eR3tLPiRcmpoj2BKvBPWqLWxrw9dae6JvQzPrYUSCEdweRsmyHnr9J5x6vbLJ51psgzpwKaT626UjEFhA6t1pa14xQKAh3oWQ4S932eSfoCh2fGxQtCoZpwQgM3443oJ4S9py4UyjuM6ooEwUpo1UU4U5yozd7ZFLf6Wm3HVghZkURsJysVHDJt7vt6ttrBptRsPhMgQr47x8v8R5upnwGf5CJo53YhSqsX8Z9vxLFBM1bs3WjvLXzDksEYDNhJxhVL9W5nD9YWcL4ex5teeUakrgV6UFTweksq2RU6wSGfvb64a4cEb4gAEvG3SvfufwENHrUDSvg1j7f7JiDKgSCnwxE9DbYs8oATJVQ1Jnop63KXfNBS6BHngSZbxbvNVpW2SFFQBYsuT5Gy6RATPwnQ4RY9AtNv4ZpatP2DYqVeocry7B7H7GqvEJyXn1yz4aMgRHsWJ9VenRqX5SGdhwow4Ww3c1fAF669s"]}},"1":{"credentialSubject":{"sensitive":{"userId":["KdrNweJibC5AyjxBAk5ozvtB59poW4ggnHUa5KeHM9NiePm8PCncENSjYA2CnrHsq1GqHLK2w5PyLuLh32TWSpjmPjaZzY6jHZFxbBjEf63yqSLBp2RvXAW1hV4uUDpLgLPzaU3s8zA6ZZdUEb5oSTdLP3XaifEpqguTm77dEM89UhtnLUC3jiUXHSvMCFfeQK5cCWLMwuq3MwHr1hN3PUhF4Af4tkYAazVmwjU2fqx3sTcH1nwQqLahkSBNCzzMwVYMiiYrqiQ1tUuUWck2MDSckFgoEo6nULtgvVzhtWfZh5YuiXiic97FYuPJq8MDSRB63Q67M1YjgDqPFRTC9BeQzPJwyVvrSmdwcRMAk4aEaTD38ks12hRabXTi4pGTggJXvSWa8J3KkKPQUaRWujNATJmJ9EjRian9rZAKhoGz1VypHGGtHncMSz1R78iUXsiX5ozdnhPhf435dTeXnoK2Tr1ANfLuBtJZiLu7drdnXfLBF8xa8XLUeCH7NY9mQ7osfaWoDd9m2MaQKzHSbBe7X8PCwWfMuhtKyxkXzhXt4UasMdieE1HgEbSW5CccZJShZJtSzaoosWXLF2oMxhrXu11EYVXQAtfBbwee5XNa9yCu377QiaHL5qpWxGy4dRUzC4eLt7LAKZuFyidaGWXbcUfv1g1sqfunzb2nCoYR7GPkLWMDNDpDQfpP6MqZ98EfXVAeynncLuomYzKubUQ4jsTM8cQ26N9bfZJJBbdCSEXuxriWb2RLRJFLxkhUUXN2khz4RGKMh9QrKmYHZTpKVFY1gYco7qotLfKKhvUXuP6J6A5Dsyvc5v6Dxg7tg3LSYgdigMDVD3VQhzCsWYyeNpYBHuH44Hu6HgWtHq6Xqpxudx3wgR1Q5hnhkgZQGpbuP8d7h1ZA1bfhHHxFgxGPxsefyVQ8CQqQrTMajtrsAAmt6rpYMu75882dAZKWFEwVECLfa6Fy5ghbryStpKeA6LJN3Ht9R8edunzC2vWYYqXXHmPsuUVKRoAqwARSqc3Vw9yZscnNsaesmiCXLqJuB9TG218FXw6WangKh3qfXAwpzUAbEzeTcnProSzHyKEfwFaisPpJqUQSMtzmqrJfdCyPbfFxZNuWUhj273VwXHLhqvs1GkdUC6TsGEzDdLXUugWgcobGiNq3fMSqtJE5bTjEj96G7TcPw1P"]}}}}} \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-objects/ps-presentation-0.6.0.json b/tests/anonymous-credentials/serialized-objects/ps-presentation-0.6.0.json new file mode 100644 index 00000000..edf25812 --- /dev/null +++ b/tests/anonymous-credentials/serialized-objects/ps-presentation-0.6.0.json @@ -0,0 +1 @@ +{"version":"0.6.0","nonce":null,"spec":{"credentials":[{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22BMI%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.01%2C%22type%22%3A%22number%22%7D%2C%22SSN%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableString%22%7D%2C%22city%22%3A%7B%22type%22%3A%22string%22%7D%2C%22country%22%3A%7B%22type%22%3A%22string%22%7D%2C%22email%22%3A%7B%22type%22%3A%22string%22%7D%2C%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22height%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22score%22%3A%7B%22minimum%22%3A-100%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22secret%22%3A%7B%22type%22%3A%22string%22%7D%2C%22timeOfBirth%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22userId%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableCompString%22%7D%2C%22weight%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John","lname":"Smith"}},"bounds":{"credentialSubject":{"timeOfBirth":[{"min":1662010838000,"max":1662010856123,"paramId":"random","protocol":"LegoGroth16"}],"BMI":[{"min":10,"max":40,"paramId":"random","protocol":"LegoGroth16"}],"score":[{"min":-40.5,"max":60.7,"paramId":"random","protocol":"LegoGroth16"}]}},"verifiableEncryptions":{"credentialSubject":{"SSN":[{"chunkBitSize":16,"commitmentGensId":"random-1","encryptionKeyId":"random-2","snarkKeyId":"random-3","protocol":"SAVER"}]}},"sigType":"Bls12381PSSignatureDock2023"},{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22isbool%22%3A%7B%22type%22%3A%22boolean%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22location%22%3A%7B%22properties%22%3A%7B%22city%22%3A%7B%22type%22%3A%22string%22%7D%2C%22country%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22physical%22%3A%7B%22properties%22%3A%7B%22BMI%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.01%2C%22type%22%3A%22number%22%7D%2C%22height%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22weight%22%3A%7B%22minimum%22%3A0%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22score%22%3A%7B%22minimum%22%3A-100%2C%22multipleOf%22%3A0.1%2C%22type%22%3A%22number%22%7D%2C%22sensitive%22%3A%7B%22properties%22%3A%7B%22SSN%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableString%22%7D%2C%22email%22%3A%7B%22type%22%3A%22string%22%7D%2C%22secret%22%3A%7B%22type%22%3A%22string%22%7D%2C%22userId%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableCompString%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22timeOfBirth%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John","location":{"country":"USA"}}},"verifiableEncryptions":{"credentialSubject":{"sensitive":{"userId":[{"chunkBitSize":16,"commitmentGensId":"random-1","encryptionKeyId":"random-2","snarkKeyId":"random-3","protocol":"SAVER"}]}}},"sigType":"Bls12381PSSignatureDock2023"},{"version":"0.4.0","schema":"{\"id\":\"data:application/json;charset=utf-8,%7B%22%24schema%22%3A%22http%3A%2F%2Fjson-schema.org%2Fdraft-07%2Fschema%23%22%2C%22definitions%22%3A%7B%22encryptableCompString%22%3A%7B%22type%22%3A%22string%22%7D%2C%22encryptableString%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22properties%22%3A%7B%22credentialStatus%22%3A%7B%22properties%22%3A%7B%22id%22%3A%7B%22type%22%3A%22string%22%7D%2C%22revocationCheck%22%3A%7B%22type%22%3A%22string%22%7D%2C%22revocationId%22%3A%7B%22type%22%3A%22string%22%7D%2C%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22credentialSubject%22%3A%7B%22properties%22%3A%7B%22fname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22lessSensitive%22%3A%7B%22properties%22%3A%7B%22department%22%3A%7B%22properties%22%3A%7B%22location%22%3A%7B%22properties%22%3A%7B%22geo%22%3A%7B%22properties%22%3A%7B%22lat%22%3A%7B%22minimum%22%3A-90%2C%22multipleOf%22%3A0.001%2C%22type%22%3A%22number%22%7D%2C%22long%22%3A%7B%22minimum%22%3A-180%2C%22multipleOf%22%3A0.001%2C%22type%22%3A%22number%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22name%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22name%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22location%22%3A%7B%22properties%22%3A%7B%22city%22%3A%7B%22type%22%3A%22string%22%7D%2C%22country%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22lname%22%3A%7B%22type%22%3A%22string%22%7D%2C%22rank%22%3A%7B%22minimum%22%3A0%2C%22type%22%3A%22integer%22%7D%2C%22sensitive%22%3A%7B%22properties%22%3A%7B%22SSN%22%3A%7B%22%24ref%22%3A%22%23%2Fdefinitions%2FencryptableString%22%7D%2C%22email%22%3A%7B%22type%22%3A%22string%22%7D%2C%22phone%22%3A%7B%22type%22%3A%22string%22%7D%2C%22very%22%3A%7B%22properties%22%3A%7B%22secret%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D%2C%22proof%22%3A%7B%22properties%22%3A%7B%22type%22%3A%7B%22type%22%3A%22string%22%7D%7D%2C%22type%22%3A%22object%22%7D%7D%2C%22type%22%3A%22object%22%7D\",\"parsingOptions\":{\"defaultDecimalPlaces\":0,\"defaultMinimumDate\":-17592186044415,\"defaultMinimumInteger\":-4294967295,\"useDefaults\":false},\"type\":\"JsonSchemaValidator2018\",\"version\":\"0.2.0\"}","revealedAttributes":{"credentialSubject":{"fname":"John","lessSensitive":{"location":{"country":"USA"},"department":{"location":{"name":"Somewhere"}}}}},"status":{"id":"dock:accumulator:accumId123","type":"DockVBAccumulator2022","revocationCheck":"membership","accumulated":"5iYSR7j6eCT2nvmKMGE3f88CQ73crNhcesj1Nq6JwkqbvCzuyR9qNYWLpvyJU1h27d","extra":{"blockNo":2010334}},"bounds":{"credentialSubject":{"lessSensitive":{"department":{"location":{"geo":{"lat":[{"min":-30,"max":50,"paramId":"random","protocol":"LegoGroth16"}],"long":[{"min":-10,"max":85,"paramId":"random","protocol":"LegoGroth16"}]}}}}}},"sigType":"Bls12381PSSignatureDock2023"}],"attributeEqualities":[[[0,"credentialSubject.SSN"],[1,"credentialSubject.sensitive.SSN"],[2,"credentialSubject.sensitive.SSN"]],[[0,"credentialSubject.timeOfBirth"],[1,"credentialSubject.timeOfBirth"]],[[0,"credentialSubject.BMI"],[1,"credentialSubject.physical.BMI"]],[[0,"credentialSubject.score"],[1,"credentialSubject.score"]],[[0,"credentialSubject.userId"],[1,"credentialSubject.sensitive.userId"]]],"boundedPseudonyms":{},"unboundedPseudonyms":{}},"proof":"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","attributeCiphertexts":{"0":{"credentialSubject":{"SSN":["HRjsLzqxShHMzngTAYjqrUtyzb2krbdeUqaS7eFeRiEeXZkbohHGepFyEGLNffVUjSX97VnAaPf31bC7GGtoR4sj5oYNNyVjofPameTCmTz8ocABAeAkBQ1kqhxbxt9orY5PjAHBJ1xVZmvSfb4yJGLbj6yLfxjuXrRrSR8uwvUHoZtkYYiyRWoB7ZLW5PNbogkTUEUqoSeVZzd4gKwvSGd974js2m5hRroK28AeQHabhwA5ddxdTE6uR4TGQziHBbBkCUwq8QaAgrmTifNDUHker2r8kQxK4ojB1F7voP9BrdcaG2w1vATheJ1qnBUsnhc3UwBzq62fZ6R3qtfy1hysXHvDvgQ5ZjMij18rJhPJNMoJe3fwiWzU9PPGxxxjMJ2VXtbF9ksg7mqwwjj4Tt7zeov9zKSfFah6fsjVBnJCXVBxvh5ieQ5PSMbRSMY7rtvP6DaXwzwRJvMYXh45Z1hHQvHNvGxQzqB9EQBQDQZ25aHeXKU7kJ7GLkjHjHDdqpNBsotzeDkX1L5mCy9nhBKXZRtXMbPyepW7CtDtoN7EwGPjkCu4eYpynR6JN4Bp5whkM9yh1vPWZCQTjBYj9nis2hYXKY8jEdNFaULbMJ1yyX7EryPyyZrpqvgkpoGBAXdf1nWK7NkHK3WrmcsmedLaVoT1HQC7Vvt9ewxwBnhgQtxbXn58fWTiKPuc7QhUiS7eR3tLPiRcmpoj2BKvBPWqLWxrw9dae6JvQzPrYUSCEdweRsmyHnr9J5x6vbLJ51psgzpwKaT626UjEFhA6t1pa14xQKAh3oWQ4S932eSfoCh2fGxQtCoZpwQgM3443oJ4S9py4UyjuM6ooEwUpo1UU4U5yozd7ZFLf6Wm3HVghZkURsJysVHDJt7vt6ttrBptRsPhMgQr47x8v8R5upnwGf5CJo53YhSqsX8Z9vxLFBM1bs3WjvLXzDksEYDNhJxhVL9W5nD9YWcL4ex5teeUakrgV6UFTweksq2RU6wSGfvb64a4cEb4gAEvG3SvfufwENHrUDSvg1j7f7JiDKgSCnwxE9DbYs8oATJVQ1Jnop63KXfNBS6BHngSZbxbvNVpW2SFFQBYsuT5Gy6RATPwnQ4RY9AtNv4ZpatP2DYqVeocry7B7H7GqvEJyXn1yz4aMgRHsWJ9VenRqX5SGdhwow4Ww3c1fAF669s"]}},"1":{"credentialSubject":{"sensitive":{"userId":["KdrNweJibC5AyjxBAk5ozvtB59poW4ggnHUa5KeHM9NiePm8PCncENSjYA2CnrHsq1GqHLK2w5PyLuLh32TWSpjmPjaZzY6jHZFxbBjEf63yqSLBp2RvXAW1hV4uUDpLgLPzaU3s8zA6ZZdUEb5oSTdLP3XaifEpqguTm77dEM89UhtnLUC3jiUXHSvMCFfeQK5cCWLMwuq3MwHr1hN3PUhF4Af4tkYAazVmwjU2fqx3sTcH1nwQqLahkSBNCzzMwVYMiiYrqiQ1tUuUWck2MDSckFgoEo6nULtgvVzhtWfZh5YuiXiic97FYuPJq8MDSRB63Q67M1YjgDqPFRTC9BeQzPJwyVvrSmdwcRMAk4aEaTD38ks12hRabXTi4pGTggJXvSWa8J3KkKPQUaRWujNATJmJ9EjRian9rZAKhoGz1VypHGGtHncMSz1R78iUXsiX5ozdnhPhf435dTeXnoK2Tr1ANfLuBtJZiLu7drdnXfLBF8xa8XLUeCH7NY9mQ7osfaWoDd9m2MaQKzHSbBe7X8PCwWfMuhtKyxkXzhXt4UasMdieE1HgEbSW5CccZJShZJtSzaoosWXLF2oMxhrXu11EYVXQAtfBbwee5XNa9yCu377QiaHL5qpWxGy4dRUzC4eLt7LAKZuFyidaGWXbcUfv1g1sqfunzb2nCoYR7GPkLWMDNDpDQfpP6MqZ98EfXVAeynncLuomYzKubUQ4jsTM8cQ26N9bfZJJBbdCSEXuxriWb2RLRJFLxkhUUXN2khz4RGKMh9QrKmYHZTpKVFY1gYco7qotLfKKhvUXuP6J6A5Dsyvc5v6Dxg7tg3LSYgdigMDVD3VQhzCsWYyeNpYBHuH44Hu6HgWtHq6Xqpxudx3wgR1Q5hnhkgZQGpbuP8d7h1ZA1bfhHHxFgxGPxsefyVQ8CQqQrTMajtrsAAmt6rpYMu75882dAZKWFEwVECLfa6Fy5ghbryStpKeA6LJN3Ht9R8edunzC2vWYYqXXHmPsuUVKRoAqwARSqc3Vw9yZscnNsaesmiCXLqJuB9TG218FXw6WangKh3qfXAwpzUAbEzeTcnProSzHyKEfwFaisPpJqUQSMtzmqrJfdCyPbfFxZNuWUhj273VwXHLhqvs1GkdUC6TsGEzDdLXUugWgcobGiNq3fMSqtJE5bTjEj96G7TcPw1P"]}}}}} \ No newline at end of file diff --git a/tests/anonymous-credentials/serialized-presentation.spec.ts b/tests/anonymous-credentials/serialized-presentation.spec.ts index 36c5a204..f070d333 100644 --- a/tests/anonymous-credentials/serialized-presentation.spec.ts +++ b/tests/anonymous-credentials/serialized-presentation.spec.ts @@ -1,6 +1,6 @@ import * as fs from 'fs'; import { generateFieldElementFromNumber } from 'crypto-wasm-new'; -import { Credential, isKvac, Presentation, PresentationBuilder, PublicKey, Scheme } from '../scheme'; +import { Credential, isKvac, Presentation, PresentationBuilder, PublicKey, Scheme, SecretKey } from '../scheme'; import { checkResult, getWasmBytes, parseR1CSFile, stringToBytes } from '../utils'; import { checkCiphertext } from './utils'; import { @@ -19,6 +19,7 @@ describe(`${Scheme} Presentation creation and verification from JSON`, () => { const fileNamePrefix = Scheme.toLowerCase(); const chunkBitSize = 16; + // For skipping older tests before introducing KVAC const skipIfKvac = isKvac() ? it.skip : it; beforeAll(async () => { @@ -33,9 +34,13 @@ describe(`${Scheme} Presentation creation and verification from JSON`, () => { const ck = SaverChunkedCommitmentKey.generate(stringToBytes('a new nonce')); const commKey = ck.decompress(); - const pk1Bin = fs.readFileSync(`${__dirname}/serialized-objects/${fileNamePrefix}_pk1.bin`); - const pk2Bin = fs.readFileSync(`${__dirname}/serialized-objects/${fileNamePrefix}_pk2.bin`); - const pk3Bin = fs.readFileSync(`${__dirname}/serialized-objects/${fileNamePrefix}_pk3.bin`); + const pk1Bin = isKvac() ? undefined : fs.readFileSync(`${__dirname}/serialized-objects/${fileNamePrefix}_pk1.bin`); + const pk2Bin = isKvac() ? undefined : fs.readFileSync(`${__dirname}/serialized-objects/${fileNamePrefix}_pk2.bin`); + const pk3Bin = isKvac() ? undefined : fs.readFileSync(`${__dirname}/serialized-objects/${fileNamePrefix}_pk3.bin`); + const sk1Bin = !isKvac() ? undefined : fs.readFileSync(`${__dirname}/serialized-objects/${fileNamePrefix}_sk1.bin`); + const sk2Bin = !isKvac() ? undefined : fs.readFileSync(`${__dirname}/serialized-objects/${fileNamePrefix}_sk2.bin`); + const sk3Bin = !isKvac() ? undefined : fs.readFileSync(`${__dirname}/serialized-objects/${fileNamePrefix}_sk3.bin`); + const accPkBin = fs.readFileSync(`${__dirname}/serialized-objects/accumulator_pk.bin`); const boundCheckVkBin = fs.readFileSync(`${__dirname}/serialized-objects/${boundCheckVkName}.bin`); const saverVkBin = fs.readFileSync(`${__dirname}/serialized-objects/saver-vk.bin`); @@ -50,14 +55,21 @@ describe(`${Scheme} Presentation creation and verification from JSON`, () => { `${__dirname}/serialized-objects/${fileNamePrefix}_credential2-${credVersion}.json`, 'utf8' ); + let credential3Json = fs.readFileSync( + `${__dirname}/serialized-objects/${fileNamePrefix}_credential3-${credVersion}.json`, + 'utf8' + ); let presJson = fs.readFileSync( `${__dirname}/serialized-objects/${fileNamePrefix}-presentation-${presVersion}.json`, 'utf8' ); - const pk1 = PublicKey.fromBytes(pk1Bin); - const pk2 = PublicKey.fromBytes(pk2Bin); - const pk3 = PublicKey.fromBytes(pk3Bin); + const pk1 = isKvac() ? undefined : PublicKey.fromBytes(pk1Bin); + const pk2 = isKvac() ? undefined : PublicKey.fromBytes(pk2Bin); + const pk3 = isKvac() ? undefined : PublicKey.fromBytes(pk3Bin); + const sk1 = !isKvac() ? undefined : SecretKey.fromBytes(sk1Bin); + const sk2 = !isKvac() ? undefined : SecretKey.fromBytes(sk2Bin); + const sk3 = !isKvac() ? undefined : SecretKey.fromBytes(sk3Bin); const accPk = AccumulatorPublicKey.fromBytes(accPkBin); const boundCheckVk = LegoVerifyingKeyUncompressed.fromBytes(boundCheckVkBin); const saverVk = SaverVerifyingKeyUncompressed.fromBytes(saverVkBin); @@ -68,7 +80,15 @@ describe(`${Scheme} Presentation creation and verification from JSON`, () => { const cred1 = Credential.fromJSON(credential1Json); credential2Json = JSON.parse(credential2Json); const cred2 = Credential.fromJSON(credential2Json); + credential3Json = JSON.parse(credential3Json); + const cred3 = Credential.fromJSON(credential3Json); + + checkResult(isKvac() ? cred1.verifyUsingSecretKey(sk1) : cred1.verify(pk1)); + checkResult(isKvac() ? cred2.verifyUsingSecretKey(sk2) : cred2.verify(pk2)); + checkResult(isKvac() ? cred3.verifyUsingSecretKey(sk3) : cred3.verify(pk3)); + presJson = JSON.parse(presJson); + // @ts-ignore const pres = Presentation.fromJSON(presJson); @@ -83,6 +103,10 @@ describe(`${Scheme} Presentation creation and verification from JSON`, () => { checkResult(pres.verify([pk1, pk2, pk3], acc, pp)); expect(presJson).toEqual(pres.toJSON()); + if (isKvac()) { + checkResult(pres.verify([sk1, sk2, sk3], acc, pp)); + } + // @ts-ignore expect(pres.attributeCiphertexts.size).toEqual(2); // @ts-ignore @@ -113,7 +137,7 @@ describe(`${Scheme} Presentation creation and verification from JSON`, () => { const r1csGrade = await parseR1CSFile('set_membership_5_public.r1cs'); const wasmGrade = getWasmBytes('set_membership_5_public.wasm'); - const pk1Bin = fs.readFileSync(`${__dirname}/serialized-objects/${fileNamePrefix}_pk1.bin`); + const pk1Bin = isKvac() ? undefined : fs.readFileSync(`${__dirname}/serialized-objects/${fileNamePrefix}_pk1.bin`); const circomVkBin = fs.readFileSync(`${__dirname}/serialized-objects/${circomVkName}.bin`); let pres1Json = fs.readFileSync( `${__dirname}/serialized-objects/${fileNamePrefix}-circom-presentation1-${presVersion}.json`, @@ -124,7 +148,7 @@ describe(`${Scheme} Presentation creation and verification from JSON`, () => { 'utf8' ); - const pk1 = PublicKey.fromBytes(pk1Bin); + const pk1 = isKvac() ? undefined : PublicKey.fromBytes(pk1Bin); const circomVk = LegoVerifyingKeyUncompressed.fromBytes(circomVkBin); pres1Json = JSON.parse(pres1Json); // @ts-ignore @@ -172,4 +196,22 @@ describe(`${Scheme} Presentation creation and verification from JSON`, () => { skipIfKvac('check version 0.4.0 with circom predicates', async () => { await checkCircom('0.4.0', 'circom-set_membership_5_public-2-vk'); }); + + skipIfKvac('check version 0.5.0', () => { + // Legosnark keys changed due type of certain values changed from `u64` to `u32` + check('0.4.0', '0.5.0', 'bound-check-legogroth16-vk2'); + }); + + skipIfKvac('check version 0.5.0 with circom predicates', async () => { + await checkCircom('0.5.0', 'circom-set_membership_5_public-2-vk'); + }); + + it('check version 0.6.0', () => { + // Legosnark keys changed due type of certain values changed from `u64` to `u32` + check('0.4.0', '0.6.0', 'bound-check-legogroth16-vk2'); + }); + + it('check version 0.6.0 with circom predicates', async () => { + await checkCircom('0.6.0', 'circom-set_membership_5_public-2-vk'); + }); });