LONGBOW_TEST_CASE(Global, parcSigner_CreatePublicKey) { _MockSigner *mock = _createSigner(); PARCSigner *signer = parcSigner_Create(mock, _MockSignerInterface); PARCKey *key = parcSigner_CreatePublicKey(signer); // Compute the real value PARCCryptoHash *hash = parcKeyStore_GetVerifierKeyDigest(mock->keyStore); PARCKeyId *keyid = parcKeyId_Create(parcCryptoHash_GetDigest(hash)); PARCBuffer *derEncodedKey = parcKeyStore_GetDEREncodedPublicKey(mock->keyStore); PARCKey *expectedKey = parcKey_CreateFromDerEncodedPublicKey(keyid, parcSigner_GetSigningAlgorithm(signer), derEncodedKey); parcBuffer_Release(&derEncodedKey); parcKeyId_Release(&keyid); parcCryptoHash_Release(&hash); assertTrue(parcKey_Equals(key, expectedKey), "Expected public keys to be computed equally."); parcKey_Release(&key); parcKey_Release(&expectedKey); parcSigner_Release(&signer); _mockSigner_Release(&mock); }
LONGBOW_TEST_CASE(Global, parcSigner_Create) { _MockSigner *mock = _createSigner(); PARCSigner *signer = parcSigner_Create(mock, _MockSignerInterface); _mockSigner_Release(&mock); assertNotNull(signer, "Expected non-null signer"); parcSigner_Release(&signer); }
LONGBOW_TEST_CASE(CreateAcquireRelease, CreateRelease) { PARCSymmetricKeySigner *instance = _createSigner(); assertNotNull(instance, "Expected non-null result from parcSymmetricKeySigner_Create();"); parcObjectTesting_AssertAcquireReleaseContract(parcSymmetricKeySigner_Acquire, instance); parcSymmetricKeySigner_Release(&instance); assertNull(instance, "Expected null result from parcSymmetricKeySigner_Release();"); }
LONGBOW_TEST_CASE(Global, parcSigner_GetKeyStore) { _MockSigner *mock = _createSigner(); PARCSigner *signer = parcSigner_Create(mock, _MockSignerInterface); _mockSigner_Release(&mock); PARCKeyStore *keyStore = parcSigner_GetKeyStore(signer); assertNotNull(keyStore, "Expected non-NULL PARCKeyStore"); parcSigner_Release(&signer); }
LONGBOW_TEST_CASE(Global, parcSigner_GetCryptoHashType) { _MockSigner *mock = _createSigner(); PARCSigner *signer = parcSigner_Create(mock, _MockSignerInterface); _mockSigner_Release(&mock); PARCCryptoHashType type = parcSigner_GetCryptoHashType(signer); assertTrue(PARCCryptoHashType_SHA256 == type, "Expected PARCCryptoHashType_SHA256 algorithm, got %d", type); parcSigner_Release(&signer); }
LONGBOW_TEST_CASE(Global, parcSigner_GetSigningAlgorithm) { _MockSigner *mock = _createSigner(); PARCSigner *signer = parcSigner_Create(mock, _MockSignerInterface); _mockSigner_Release(&mock); PARCSigningAlgorithm alg = parcSigner_GetSigningAlgorithm(signer); assertTrue(PARCSigningAlgorithm_RSA == alg, "Expected PARCSigningAlgorithm_RSA algorithm, got %d", alg); parcSigner_Release(&signer); }
LONGBOW_TEST_CASE(Global, parcSigner_GetCryptoHasher) { _MockSigner *mock = _createSigner(); PARCSigner *signer = parcSigner_Create(mock, _MockSignerInterface); _mockSigner_Release(&mock); PARCCryptoHasher *hasher = parcSigner_GetCryptoHasher(signer); assertNotNull(hasher, "Expected non-NULL PARCCryptoHasher"); parcSigner_Release(&signer); }
LONGBOW_TEST_CASE(Global, parcSigner_CreateKeyId) { _MockSigner *mock = _createSigner(); PARCSigner *signer = parcSigner_Create(mock, _MockSignerInterface); _mockSigner_Release(&mock); PARCKeyId *keyId = parcSigner_CreateKeyId(signer); assertNotNull(keyId, "Expected non-NULL PARCKeyId"); parcKeyId_Release(&keyId); parcSigner_Release(&signer); }
LONGBOW_TEST_CASE(Global, parcSigner_AcquireRelease) { _MockSigner *mock = _createSigner(); PARCSigner *signer = parcSigner_Create(mock, _MockSignerInterface); _mockSigner_Release(&mock); assertNotNull(signer, "Expected non-null signer"); parcObjectTesting_AssertAcquireReleaseContract(parcSigner_Acquire, signer); parcSigner_Release(&signer); assertNull(signer, "Expected null result from parcSigner_Release();"); }
LONGBOW_TEST_CASE(Global, parcSigner_SignDigest) { _MockSigner *mock = _createSigner(); PARCSigner *signer = parcSigner_Create(mock, _MockSignerInterface); _mockSigner_Release(&mock); PARCBuffer *buffer = parcBuffer_Allocate(10); PARCCryptoHash *hash = parcCryptoHash_Create(PARCCryptoHashType_SHA256, buffer); PARCSignature *signature = parcSigner_SignDigest(signer, hash); assertNotNull(signature, "Expected non-NULL PARCSignature"); PARCBuffer *bits = parcSignature_GetSignature(signature); char *bitstring = parcBuffer_ToString(bits); char *expectedString = FAKE_SIGNATURE; assertTrue(strcmp(bitstring, expectedString) == 0, "Expected the forced signature as output %s, got %s", expectedString, bitstring); parcMemory_Deallocate(&bitstring); parcCryptoHash_Release(&hash); parcBuffer_Release(&buffer); parcSignature_Release(&signature); parcSigner_Release(&signer); }