aboutsummaryrefslogtreecommitdiffstats
path: root/libparc/parc/security/test
diff options
context:
space:
mode:
authorMauro Sardara <msardara@cisco.com>2019-01-24 17:52:53 +0100
committerMauro Sardara <msardara@cisco.com>2019-01-24 17:52:53 +0100
commitc07ad72f016930e2aba6471d0e2e9625b935bf9a (patch)
tree03aa7b7c737a7a70321ef25d67c2fbd892cd76db /libparc/parc/security/test
parent9fc2b9ec49c54ec2d5f0164bbedc1c78732c464c (diff)
Remove cframework files from master
Change-Id: I02f17ede1cf97986a8b8852ed6d6a28fc016f590 Signed-off-by: Mauro Sardara <msardara@cisco.com>
Diffstat (limited to 'libparc/parc/security/test')
-rw-r--r--libparc/parc/security/test/.gitignore24
-rw-r--r--libparc/parc/security/test/CMakeLists.txt88
-rw-r--r--libparc/parc/security/test/README.digests12
-rw-r--r--libparc/parc/security/test/README.keystore63
-rw-r--r--libparc/parc/security/test/README.symmetric9
-rw-r--r--libparc/parc/security/test/test.crt.derbin559 -> 0 bytes
-rw-r--r--libparc/parc/security/test/test.crt.der.sha256.bin1
-rw-r--r--libparc/parc/security/test/test.derbin162 -> 0 bytes
-rw-r--r--libparc/parc/security/test/test.pem13
-rw-r--r--libparc/parc/security/test/test.pkcs12bin1646 -> 0 bytes
-rw-r--r--libparc/parc/security/test/test_crt.derbin517 -> 0 bytes
-rw-r--r--libparc/parc/security/test/test_crt_der.binbin517 -> 0 bytes
-rw-r--r--libparc/parc/security/test/test_crt_sha256.bin1
-rw-r--r--libparc/parc/security/test/test_der.binbin162 -> 0 bytes
-rw-r--r--libparc/parc/security/test/test_digest_bytes_128.bin1
-rw-r--r--libparc/parc/security/test/test_digest_bytes_128.sha2561
-rw-r--r--libparc/parc/security/test/test_digest_bytes_128.sha5121
-rw-r--r--libparc/parc/security/test/test_ec.crt12
-rw-r--r--libparc/parc/security/test/test_ec.csr8
-rw-r--r--libparc/parc/security/test/test_ec.p12bin1011 -> 0 bytes
-rw-r--r--libparc/parc/security/test/test_ec_crt.derbin438 -> 0 bytes
-rw-r--r--libparc/parc/security/test/test_ec_crt_sha256.bin1
-rw-r--r--libparc/parc/security/test/test_ec_key.derbin118 -> 0 bytes
-rw-r--r--libparc/parc/security/test/test_ec_key.pem5
-rw-r--r--libparc/parc/security/test/test_ec_pub.derbin88 -> 0 bytes
-rw-r--r--libparc/parc/security/test/test_ec_pub.pem4
-rw-r--r--libparc/parc/security/test/test_ec_pub_sha256.bin1
-rw-r--r--libparc/parc/security/test/test_ec_pub_sha256.bin.sigbin70 -> 0 bytes
-rw-r--r--libparc/parc/security/test/test_key.pem6
-rw-r--r--libparc/parc/security/test/test_parc_Certificate.c258
-rwxr-xr-xlibparc/parc/security/test/test_parc_CertificateFactory.c160
-rwxr-xr-xlibparc/parc/security/test/test_parc_CertificateType.c90
-rwxr-xr-xlibparc/parc/security/test/test_parc_ContainerEncoding.c90
-rwxr-xr-xlibparc/parc/security/test/test_parc_CryptoCache.c228
-rwxr-xr-xlibparc/parc/security/test/test_parc_CryptoHash.c184
-rw-r--r--libparc/parc/security/test/test_parc_CryptoHashType.c92
-rwxr-xr-xlibparc/parc/security/test/test_parc_CryptoHasher.c407
-rwxr-xr-xlibparc/parc/security/test/test_parc_CryptoSuite.c82
-rwxr-xr-xlibparc/parc/security/test/test_parc_DiffieHellman.c93
-rwxr-xr-xlibparc/parc/security/test/test_parc_DiffieHellmanKeyShare.c229
-rw-r--r--libparc/parc/security/test/test_parc_Identity.c232
-rw-r--r--libparc/parc/security/test/test_parc_IdentityFile.c242
-rwxr-xr-xlibparc/parc/security/test/test_parc_InMemoryVerifier.c417
-rw-r--r--libparc/parc/security/test/test_parc_InMemoryVerifierECDSA.c417
-rwxr-xr-xlibparc/parc/security/test/test_parc_Key.c357
-rw-r--r--libparc/parc/security/test/test_parc_KeyId.c216
-rwxr-xr-xlibparc/parc/security/test/test_parc_KeyStore.c137
-rwxr-xr-xlibparc/parc/security/test/test_parc_Pkcs12KeyStore.c470
-rw-r--r--libparc/parc/security/test/test_parc_Pkcs12KeyStoreECDSA.c470
-rw-r--r--libparc/parc/security/test/test_parc_PublicKeyECSigner.c507
-rw-r--r--libparc/parc/security/test/test_parc_PublicKeySigner.c466
-rwxr-xr-xlibparc/parc/security/test/test_parc_SecureRandom.c241
-rwxr-xr-xlibparc/parc/security/test/test_parc_Security.c109
-rwxr-xr-xlibparc/parc/security/test/test_parc_Signature.c230
-rw-r--r--libparc/parc/security/test/test_parc_Signer.c305
-rw-r--r--libparc/parc/security/test/test_parc_SignerEC.c312
-rwxr-xr-xlibparc/parc/security/test/test_parc_SigningAlgorithm.c126
-rw-r--r--libparc/parc/security/test/test_parc_SymmetricKeySigner.c261
-rwxr-xr-xlibparc/parc/security/test/test_parc_SymmetricKeyStore.c351
-rwxr-xr-xlibparc/parc/security/test/test_parc_Verifier.c121
-rwxr-xr-xlibparc/parc/security/test/test_parc_X509Certificate.c244
-rw-r--r--libparc/parc/security/test/test_pubkey.bin1
-rw-r--r--libparc/parc/security/test/test_pubkey.der6
-rw-r--r--libparc/parc/security/test/test_pubkey.pem6
-rw-r--r--libparc/parc/security/test/test_random_bytesbin512 -> 0 bytes
-rw-r--r--libparc/parc/security/test/test_random_bytes.hmac_sha256bin32 -> 0 bytes
-rw-r--r--libparc/parc/security/test/test_random_bytes.hmac_sha512bin64 -> 0 bytes
-rw-r--r--libparc/parc/security/test/test_random_bytes.sigbin128 -> 0 bytes
-rw-r--r--libparc/parc/security/test/test_random_bytes.sig_ecbin71 -> 0 bytes
-rw-r--r--libparc/parc/security/test/test_rsa.crt13
-rw-r--r--libparc/parc/security/test/test_rsa.csr11
-rw-r--r--libparc/parc/security/test/test_rsa.p12bin1598 -> 0 bytes
-rw-r--r--libparc/parc/security/test/test_rsa_crt.derbin517 -> 0 bytes
-rw-r--r--libparc/parc/security/test/test_rsa_crt_sha256.bin2
-rw-r--r--libparc/parc/security/test/test_rsa_key.derbin608 -> 0 bytes
-rw-r--r--libparc/parc/security/test/test_rsa_key.pem15
-rw-r--r--libparc/parc/security/test/test_rsa_pub.derbin162 -> 0 bytes
-rw-r--r--libparc/parc/security/test/test_rsa_pub.pem6
-rw-r--r--libparc/parc/security/test/test_rsa_pub_sha256.bin1
-rw-r--r--libparc/parc/security/test/test_symmetric_key.binbin32 -> 0 bytes
-rw-r--r--libparc/parc/security/test/test_symmetric_key.sha2561
81 files changed, 0 insertions, 8457 deletions
diff --git a/libparc/parc/security/test/.gitignore b/libparc/parc/security/test/.gitignore
deleted file mode 100644
index bda8c802..00000000
--- a/libparc/parc/security/test/.gitignore
+++ /dev/null
@@ -1,24 +0,0 @@
-test_parc_AesSignerFileStore
-test_parc_CryptoCache
-test_parc_InMemoryVerifier
-test_parc_KeyId
-test_parc_PublicKeySignerPkcs12Store
-test_parc_SelfSignedCertificate
-test_parc_Signature
-test_parc_Signer
-test_parc_SymmetricSignerFileStore
-test_parc_Security
-test_parc_CryptoHash
-test_parc_CryptoHashType
-test_parc_CryptoSuite
-test_parc_Identity
-test_parc_IdentityFile
-test_parc_Key
-test_parc_KeyStore
-test_parc_Verifier
-test_parc_SigningAlgorithm
-test_parc_Certificate
-test_parc_CertificateFactory
-test_parc_ContainerEncoding
-test_parc_CertificateType
-test_parc_X509Certificate
diff --git a/libparc/parc/security/test/CMakeLists.txt b/libparc/parc/security/test/CMakeLists.txt
deleted file mode 100644
index 40a5eb70..00000000
--- a/libparc/parc/security/test/CMakeLists.txt
+++ /dev/null
@@ -1,88 +0,0 @@
-set(TestsExpectedToPass
- test_parc_Certificate
- test_parc_CertificateFactory
- test_parc_CertificateType
- test_parc_ContainerEncoding
- test_parc_CryptoCache
- test_parc_CryptoHash
- test_parc_CryptoHashType
- test_parc_CryptoHasher
- test_parc_CryptoSuite
- test_parc_DiffieHellman
- test_parc_DiffieHellmanKeyShare
- test_parc_Identity
- test_parc_IdentityFile
- test_parc_InMemoryVerifier
- test_parc_InMemoryVerifierECDSA
- test_parc_Key
- test_parc_KeyId
- test_parc_KeyStore
- test_parc_SecureRandom
- test_parc_Pkcs12KeyStore
- test_parc_Pkcs12KeyStoreECDSA
- test_parc_PublicKeySigner
- test_parc_PublicKeyECSigner
- test_parc_SymmetricKeySigner
- test_parc_SymmetricKeyStore
- test_parc_Security
- test_parc_Signature
- test_parc_Signer
- test_parc_SignerEC
- test_parc_SigningAlgorithm
- test_parc_Verifier
- test_parc_X509Certificate
- )
-
-set(EXTRA_DATA_FILES
- README.digests
- README.keystore
- README.symmetric
- test_crt.der
- test_crt_der.bin
- test_crt_sha256.bin
- test_der.bin
- test_digest_bytes_128.bin
- test_digest_bytes_128.sha256
- test_digest_bytes_128.sha512
- test.pem
- test_pubkey.bin
- test_pubkey.der
- test_pubkey.pem
- test_random_bytes
- test_random_bytes.sig
- test_random_bytes.sig_ec
- test_random_bytes.hmac_sha256
- test_random_bytes.hmac_sha512
- test_rsa.p12
- test_rsa_crt.der
- test_rsa_crt_sha256.bin
- test_rsa_key.der
- test_rsa_key.pem
- test_rsa_pub.der
- test_rsa_pub.pem
- test_rsa_pub_sha256.bin
- test_symmetric_key.bin
- test_symmetric_key.sha256
- test_ec.p12
- test_ec_crt.der
- test_ec_crt_sha256.bin
- test_ec_key.der
- test_ec_key.pem
- test_ec_pub.der
- test_ec_pub.pem
- test_ec_pub_sha256.bin
- )
-
-foreach(data_file ${EXTRA_DATA_FILES})
- configure_file(${data_file} ${data_file} COPYONLY)
-endforeach()
-
-
-# Enable gcov output for the tests
-add_definitions(--coverage)
-set(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} " --coverage")
-
-
-foreach(test ${TestsExpectedToPass})
- AddTest(${test})
-endforeach()
diff --git a/libparc/parc/security/test/README.digests b/libparc/parc/security/test/README.digests
deleted file mode 100644
index 4abfa940..00000000
--- a/libparc/parc/security/test/README.digests
+++ /dev/null
@@ -1,12 +0,0 @@
-#
-# Generate some blocks of bytes to digest, then calculate the "truth" via openssl
-
-dd if=/dev/urandom of=test_digest_bytes_128.bin bs=128 count=1
-
-openssl dgst -sha256 -binary < test_digest_bytes_128.bin > test_digest_bytes_128.sha256
-openssl dgst -sha512 -binary < test_digest_bytes_128.bin > test_digest_bytes_128.sha512
-
-# these are for the symmetric key tests
-openssl sha256 -hmac 'apple_pie_is_good' -binary < test_random_bytes > test_random_bytes.hmac_sha256
-openssl sha512 -hmac 'apple_pie_is_good' -binary < test_random_bytes > test_random_bytes.hmac_sha512
-
diff --git a/libparc/parc/security/test/README.keystore b/libparc/parc/security/test/README.keystore
deleted file mode 100644
index 0c9c3a58..00000000
--- a/libparc/parc/security/test/README.keystore
+++ /dev/null
@@ -1,63 +0,0 @@
-
-# This set of commands creates an RSA public/private key pair,
-# self-signs it, then puts it all in a pkcs12 container with
-# the password "blueberry"
-#
-# We use these files in the test_ccnx_FileKeystore tests.
-
-openssl genrsa -out test_rsa_key.pem
-openssl rsa -pubout -in test_rsa_key.pem -out test_rsa_pub.pem
-openssl req -new -key test_rsa_key.pem -out test_rsa.csr
-openssl x509 -req -days 365 -in test_rsa.csr -signkey test_rsa_key.pem -out test_rsa.crt
-openssl pkcs12 -export -in test_rsa.crt -inkey test_rsa_key.pem -out test_rsa.p12 -name ccnxuser -CAfile test_rsa.crt -caname root -chain -passout pass:blueberry
-
-# saves the public key in DER form so we can calculate the sha256 of it
-openssl rsa -in test_rsa_key.pem -outform DER -pubout -out test_rsa_pub.der
-
-# save the private key in DER form so we can compare in code
-openssl rsa -in test_rsa_key.pem -outform DER -out test_rsa_key.der
-
-# computes the sha256 and saves it in binary form
-openssl sha256 -out test_rsa_pub_sha256.bin -sha256 -binary < test_rsa_pub.der
-
-# Save the certificate in DER form, then get the SHA256 hash of it
-# These are similar to doing "openssl x509 -in test_rsa.crt -fingerprint -sha256"
-openssl x509 -outform DER -out test_rsa_crt.der -in test_rsa.crt
-openssl sha256 -out test_rsa_crt_sha256.bin -sha256 -binary < test_rsa_crt.der
-
-# To verify signing, we create a random buffer, then sign with a SHA256 digest
-
-dd if=/dev/urandom of=test_random_bytes bs=512 count=1
-openssl sha -sha256 -sign test_rsa_key.pem -out test_random_bytes.sig < test_random_bytes
-
-# the "-in test_rsa_pub_sha256.bin" is the binary digest we will sign.
-openssl rsautl -sign -inkey test_rsa_key.pem -in test_rsa_pub_sha256.bin -out test_rsa_pub_sha256.bin.sig
-
-
-#EC
-openssl ecparam -name secp256k1 -genkey -noout -out test_ec_key.pem
-openssl ec -pubout -in test_ec_key.pem -out test_ec_pub.pem
-openssl req -new -key test_ec_key.pem -out test_ec.csr
-openssl x509 -req -days 365 -in test_ec.csr -signkey test_ec_key.pem -out test_ec.crt
-openssl pkcs12 -export -in test_ec.crt -inkey test_ec_key.pem -out test_ec.p12 -name ccnxuser -CAfile test_ec.crt -caname root -chain -passout pass:blueberry
-
-# saves the public key in DER form so we can calculate the sha256 of it
-openssl ec -in test_ec_key.pem -outform DER -pubout -out test_ec_pub.der
-
-# save the private key in DER form so we can compare in code
-openssl ec -in test_ec_key.pem -outform DER -out test_ec_key.der
-
-# computes the sha256 and saves it in binary form
-openssl sha256 -out test_ec_pub_sha256.bin -sha256 -binary < test_ec_pub.der
-
-# Save the certificate in DER form, then get the SHA256 hash of it
-# These are similar to doing "openssl x509 -in test_rsa.crt -fingerprint -sha256"
-openssl x509 -outform DER -out test_ec_crt.der -in test_ec.crt
-openssl sha256 -out test_ec_crt_sha256.bin -sha256 -binary < test_ec_crt.der
-
-# To verify signing, we create a random buffer, then sign with a SHA256 digest
-
-openssl sha -sha256 -sign test_ec_key.pem -out test_random_bytes.sig_ec < test_random_bytes
-
-# the "-in test_rsa_pub_sha256.bin" is the binary digest we will sign.
-openssl rsautl -sign -inkey test_ec_key.pem -in test_ec_pub_sha256.bin -out test_ec_pub_sha256.bin.sig \ No newline at end of file
diff --git a/libparc/parc/security/test/README.symmetric b/libparc/parc/security/test/README.symmetric
deleted file mode 100644
index ce09fe85..00000000
--- a/libparc/parc/security/test/README.symmetric
+++ /dev/null
@@ -1,9 +0,0 @@
-
-# random bytes as a 32-byte (256-bit) key
-
-dd if=/dev/random of=test_symmetric_key.bin bs=32 count=1
-
-# compute its sha-256 hash
-openssl sha256 -binary -out test_symmetric_key.sha256 < test_symmetric_key.bin
-
-
diff --git a/libparc/parc/security/test/test.crt.der b/libparc/parc/security/test/test.crt.der
deleted file mode 100644
index 8b2e12ca..00000000
--- a/libparc/parc/security/test/test.crt.der
+++ /dev/null
Binary files differ
diff --git a/libparc/parc/security/test/test.crt.der.sha256.bin b/libparc/parc/security/test/test.crt.der.sha256.bin
deleted file mode 100644
index 1d19a81c..00000000
--- a/libparc/parc/security/test/test.crt.der.sha256.bin
+++ /dev/null
@@ -1 +0,0 @@
-> Թ/ͩp 󏝨:), \ No newline at end of file
diff --git a/libparc/parc/security/test/test.der b/libparc/parc/security/test/test.der
deleted file mode 100644
index db368b72..00000000
--- a/libparc/parc/security/test/test.der
+++ /dev/null
Binary files differ
diff --git a/libparc/parc/security/test/test.pem b/libparc/parc/security/test/test.pem
deleted file mode 100644
index d9593bac..00000000
--- a/libparc/parc/security/test/test.pem
+++ /dev/null
@@ -1,13 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICATCCAWoCCQDCCG74+EassjANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJB
-VTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0
-cyBQdHkgTHRkMB4XDTE1MDkwMzIxMDYxNloXDTE2MDkwMjIxMDYxNlowRTELMAkG
-A1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNVBAoTGEludGVybmV0
-IFdpZGdpdHMgUHR5IEx0ZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvp5L
-B7ccwPfBooRduHvQHgJo5gvDIXX5dFz/8oRDgyAnvtvCoQXkfSj5oO+6WpaKIG2k
-RxO+2VEKknY1GyWT3qqHVfSgp33n/AKBsedVb5ZUVAhy4FAOq3BCF8wpfKrkfadQ
-ltmBNYP0DH4YdIvS7+HL5yaKXF1ZnUwWo2WFcucCAwEAATANBgkqhkiG9w0BAQUF
-AAOBgQAt8Op2KgQ6cREBVS6xOWvSeNr7/EXEW8T19BsUkYZeZ596oEJVjT2CrT0P
-s2ADuzfN0w19aGM25UczlBcg/CtkrTZEoXubbIoPGwwZv+taM+v455DhJY1chd0j
-Jq6XeRDokTFvn9qcZmoCX2CVKEMigatTpz4zenATUQmmRwdIVg==
------END CERTIFICATE-----
diff --git a/libparc/parc/security/test/test.pkcs12 b/libparc/parc/security/test/test.pkcs12
deleted file mode 100644
index 4b032263..00000000
--- a/libparc/parc/security/test/test.pkcs12
+++ /dev/null
Binary files differ
diff --git a/libparc/parc/security/test/test_crt.der b/libparc/parc/security/test/test_crt.der
deleted file mode 100644
index 42a829ee..00000000
--- a/libparc/parc/security/test/test_crt.der
+++ /dev/null
Binary files differ
diff --git a/libparc/parc/security/test/test_crt_der.bin b/libparc/parc/security/test/test_crt_der.bin
deleted file mode 100644
index 42a829ee..00000000
--- a/libparc/parc/security/test/test_crt_der.bin
+++ /dev/null
Binary files differ
diff --git a/libparc/parc/security/test/test_crt_sha256.bin b/libparc/parc/security/test/test_crt_sha256.bin
deleted file mode 100644
index 77d41680..00000000
--- a/libparc/parc/security/test/test_crt_sha256.bin
+++ /dev/null
@@ -1 +0,0 @@
-5#LG4%uENlna,*V<w \ No newline at end of file
diff --git a/libparc/parc/security/test/test_der.bin b/libparc/parc/security/test/test_der.bin
deleted file mode 100644
index db368b72..00000000
--- a/libparc/parc/security/test/test_der.bin
+++ /dev/null
Binary files differ
diff --git a/libparc/parc/security/test/test_digest_bytes_128.bin b/libparc/parc/security/test/test_digest_bytes_128.bin
deleted file mode 100644
index b6939de1..00000000
--- a/libparc/parc/security/test/test_digest_bytes_128.bin
+++ /dev/null
@@ -1 +0,0 @@
-}/W9^Y(Αv|}wλ^K3qh%anĝEvu.cCj'Dv\hE6$][lB}DS \ No newline at end of file
diff --git a/libparc/parc/security/test/test_digest_bytes_128.sha256 b/libparc/parc/security/test/test_digest_bytes_128.sha256
deleted file mode 100644
index 6e93005d..00000000
--- a/libparc/parc/security/test/test_digest_bytes_128.sha256
+++ /dev/null
@@ -1 +0,0 @@
-NL.T`+۪] \ No newline at end of file
diff --git a/libparc/parc/security/test/test_digest_bytes_128.sha512 b/libparc/parc/security/test/test_digest_bytes_128.sha512
deleted file mode 100644
index 88db6953..00000000
--- a/libparc/parc/security/test/test_digest_bytes_128.sha512
+++ /dev/null
@@ -1 +0,0 @@
-W Juie>]ϲ OC>4G KNEEop9~kML \ No newline at end of file
diff --git a/libparc/parc/security/test/test_ec.crt b/libparc/parc/security/test/test_ec.crt
deleted file mode 100644
index 69c446c2..00000000
--- a/libparc/parc/security/test/test_ec.crt
+++ /dev/null
@@ -1,12 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIBsjCCAVkCCQDTJPDkG9R7gjAKBggqhkjOPQQDAjBjMQswCQYDVQQGEwJGUjEP
-MA0GA1UECAwGRnJhbmNlMRwwGgYDVQQHDBNJc3N5LWxlcy1tb3VsaW5lYXV4MRYw
-FAYDVQQKDA1DaXNjbyBTeXN0ZW1zMQ0wCwYDVQQLDARDVEFPMB4XDTE4MDQxMTEw
-MDYzNVoXDTE5MDQxMTEwMDYzNVowYzELMAkGA1UEBhMCRlIxDzANBgNVBAgMBkZy
-YW5jZTEcMBoGA1UEBwwTSXNzeS1sZXMtbW91bGluZWF1eDEWMBQGA1UECgwNQ2lz
-Y28gU3lzdGVtczENMAsGA1UECwwEQ1RBTzBWMBAGByqGSM49AgEGBSuBBAAKA0IA
-BKl0iUeCpxrOueZrbZLiWMhs7PAGgNYt+x4koWPJ0wELrbs7oNIqys8mJXQM9oTw
-I1b4IIgloT7/VcPanz66NgcwCgYIKoZIzj0EAwIDRwAwRAIgSc4s8ZKkEmuyV8wO
-08C58dN3dxXVYdW1v1zt3lq88dwCICf64KpJok1MGSX/t/QldOiVqPtPAv6l4lq2
-9EiLK+m9
------END CERTIFICATE-----
diff --git a/libparc/parc/security/test/test_ec.csr b/libparc/parc/security/test/test_ec.csr
deleted file mode 100644
index 49247a4e..00000000
--- a/libparc/parc/security/test/test_ec.csr
+++ /dev/null
@@ -1,8 +0,0 @@
------BEGIN CERTIFICATE REQUEST-----
-MIIBGzCBwgIBADBjMQswCQYDVQQGEwJGUjEPMA0GA1UECAwGRnJhbmNlMRwwGgYD
-VQQHDBNJc3N5LWxlcy1tb3VsaW5lYXV4MRYwFAYDVQQKDA1DaXNjbyBTeXN0ZW1z
-MQ0wCwYDVQQLDARDVEFPMFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEqXSJR4KnGs65
-5mttkuJYyGzs8AaA1i37HiShY8nTAQutuzug0irKzyYldAz2hPAjVvggiCWhPv9V
-w9qfPro2B6AAMAoGCCqGSM49BAMCA0gAMEUCIQCCQ5E36YNPG5LV2Q8i9flCPWk+
-4MjtioNV2I+NSf/6XgIgUjEeA54lw5dS8yqAkH8TDvw6ROe90rzBAfjsI1X2Y0k=
------END CERTIFICATE REQUEST-----
diff --git a/libparc/parc/security/test/test_ec.p12 b/libparc/parc/security/test/test_ec.p12
deleted file mode 100644
index 5fb44d05..00000000
--- a/libparc/parc/security/test/test_ec.p12
+++ /dev/null
Binary files differ
diff --git a/libparc/parc/security/test/test_ec_crt.der b/libparc/parc/security/test/test_ec_crt.der
deleted file mode 100644
index d3294e20..00000000
--- a/libparc/parc/security/test/test_ec_crt.der
+++ /dev/null
Binary files differ
diff --git a/libparc/parc/security/test/test_ec_crt_sha256.bin b/libparc/parc/security/test/test_ec_crt_sha256.bin
deleted file mode 100644
index 22d1e2c4..00000000
--- a/libparc/parc/security/test/test_ec_crt_sha256.bin
+++ /dev/null
@@ -1 +0,0 @@
-!bL?'kll!Th ~z~p` \ No newline at end of file
diff --git a/libparc/parc/security/test/test_ec_key.der b/libparc/parc/security/test/test_ec_key.der
deleted file mode 100644
index 28fbd5a5..00000000
--- a/libparc/parc/security/test/test_ec_key.der
+++ /dev/null
Binary files differ
diff --git a/libparc/parc/security/test/test_ec_key.pem b/libparc/parc/security/test/test_ec_key.pem
deleted file mode 100644
index 6b0e1941..00000000
--- a/libparc/parc/security/test/test_ec_key.pem
+++ /dev/null
@@ -1,5 +0,0 @@
------BEGIN EC PRIVATE KEY-----
-MHQCAQEEIJXMLfUwhGUPNiXdmfpvWtfLzRSTL2fm9s+lTLCBGRdVoAcGBSuBBAAK
-oUQDQgAEqXSJR4KnGs655mttkuJYyGzs8AaA1i37HiShY8nTAQutuzug0irKzyYl
-dAz2hPAjVvggiCWhPv9Vw9qfPro2Bw==
------END EC PRIVATE KEY-----
diff --git a/libparc/parc/security/test/test_ec_pub.der b/libparc/parc/security/test/test_ec_pub.der
deleted file mode 100644
index e9150405..00000000
--- a/libparc/parc/security/test/test_ec_pub.der
+++ /dev/null
Binary files differ
diff --git a/libparc/parc/security/test/test_ec_pub.pem b/libparc/parc/security/test/test_ec_pub.pem
deleted file mode 100644
index 2ab68ff8..00000000
--- a/libparc/parc/security/test/test_ec_pub.pem
+++ /dev/null
@@ -1,4 +0,0 @@
------BEGIN PUBLIC KEY-----
-MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEqXSJR4KnGs655mttkuJYyGzs8AaA1i37
-HiShY8nTAQutuzug0irKzyYldAz2hPAjVvggiCWhPv9Vw9qfPro2Bw==
------END PUBLIC KEY-----
diff --git a/libparc/parc/security/test/test_ec_pub_sha256.bin b/libparc/parc/security/test/test_ec_pub_sha256.bin
deleted file mode 100644
index c0dd0fac..00000000
--- a/libparc/parc/security/test/test_ec_pub_sha256.bin
+++ /dev/null
@@ -1 +0,0 @@
-1&,@ n  t-D|>%z` \ No newline at end of file
diff --git a/libparc/parc/security/test/test_ec_pub_sha256.bin.sig b/libparc/parc/security/test/test_ec_pub_sha256.bin.sig
deleted file mode 100644
index 787f8b3a..00000000
--- a/libparc/parc/security/test/test_ec_pub_sha256.bin.sig
+++ /dev/null
Binary files differ
diff --git a/libparc/parc/security/test/test_key.pem b/libparc/parc/security/test/test_key.pem
deleted file mode 100644
index bdc42c1e..00000000
--- a/libparc/parc/security/test/test_key.pem
+++ /dev/null
@@ -1,6 +0,0 @@
------BEGIN PUBLIC KEY-----
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+nksHtxzA98GihF24e9AeAmjm
-C8Mhdfl0XP/yhEODICe+28KhBeR9KPmg77paloogbaRHE77ZUQqSdjUbJZPeqodV
-9KCnfef8AoGx51VvllRUCHLgUA6rcEIXzCl8quR9p1CW2YE1g/QMfhh0i9Lv4cvn
-JopcXVmdTBajZYVy5wIDAQAB
------END PUBLIC KEY-----
diff --git a/libparc/parc/security/test/test_parc_Certificate.c b/libparc/parc/security/test/test_parc_Certificate.c
deleted file mode 100644
index 24f46f86..00000000
--- a/libparc/parc/security/test/test_parc_Certificate.c
+++ /dev/null
@@ -1,258 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <config.h>
-#include <stdio.h>
-#include <LongBow/unit-test.h>
-
-#include "../parc_Certificate.c"
-#include <parc/algol/parc_SafeMemory.h>
-#include <parc/security/parc_Security.h>
-#include <parc/security/parc_CryptoHashType.h>
-#include <parc/security/parc_Key.h>
-#include <parc/algol/parc_Buffer.h>
-
-PARCCryptoHash *
-_mockGetPublicKeyDigest(void *instance)
-{
- PARCBuffer *buffer = parcBuffer_Allocate(10);
- PARCCryptoHash *hash = parcCryptoHash_Create(PARCCryptoHashType_SHA256, buffer);
- parcBuffer_Release(&buffer);
- return hash;
-}
-
-PARCCryptoHash *
-_mockGetCertificateDigest(void *instance)
-{
- PARCBuffer *buffer = parcBuffer_Allocate(20);
- PARCCryptoHash *hash = parcCryptoHash_Create(PARCCryptoHashType_SHA256, buffer);
- parcBuffer_Release(&buffer);
- return hash;
-}
-
-PARCBuffer *
-_mockGetDEREncodedCertificate(void *instance)
-{
- return parcBuffer_Allocate(30);
-}
-
-PARCBuffer *
-_mockGetDEREncodedPublicKey(void *instance)
-{
- return parcBuffer_Allocate(40);
-}
-
-PARCCertificateType
-_mockGetCertificateType(const void *instance)
-{
- return PARCCertificateType_X509;
-}
-
-PARCContainerEncoding
-_mockGetContainerEncoding(const void *instance)
-{
- return PARCContainerEncoding_PEM;
-}
-
-PARCKey *
-_mockGetPublicKey(void *instance)
-{
- PARCBuffer *realKey = parcBuffer_Allocate(256);
- PARCBuffer *keyId = parcBuffer_Allocate(256);
- PARCKeyId *id = parcKeyId_Create(keyId);
-
- PARCKey *key = parcKey_CreateFromDerEncodedPublicKey(id, PARCSigningAlgorithm_RSA, realKey);
-
- parcBuffer_Release(&keyId);
- parcKeyId_Release(&id);
- parcBuffer_Release(&realKey);
-
- return key;
-}
-
-PARCCertificateInterface *_mockCertificate = &(PARCCertificateInterface) {
- .GetPublicKeyDigest = _mockGetPublicKeyDigest,
- .GetCertificateDigest = _mockGetCertificateDigest,
- .GetDEREncodedCertificate = _mockGetDEREncodedCertificate,
- .GetDEREncodedPublicKey = _mockGetDEREncodedPublicKey,
- .GetCertificateType = _mockGetCertificateType,
- .GetContainerEncoding = _mockGetContainerEncoding
-};
-
-LONGBOW_TEST_RUNNER(parc_Certificate)
-{
- LONGBOW_RUN_TEST_FIXTURE(Global);
-}
-
-LONGBOW_TEST_RUNNER_SETUP(parc_Certificate)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(parc_Certificate)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Global)
-{
- LONGBOW_RUN_TEST_CASE(Global, parc_Certificate_AcquireRelease);
- LONGBOW_RUN_TEST_CASE(Global, parc_Certificate_Create);
- LONGBOW_RUN_TEST_CASE(Global, parc_Certificate_GetContainerEncoding);
- LONGBOW_RUN_TEST_CASE(Global, parc_Certificate_GetCertificateType);
- LONGBOW_RUN_TEST_CASE(Global, parc_Certificate_GetPublicKeyDigest);
- LONGBOW_RUN_TEST_CASE(Global, parc_Certificate_GetCertificateDigest);
- LONGBOW_RUN_TEST_CASE(Global, parc_Certificate_GetDEREncodedCertificate);
- LONGBOW_RUN_TEST_CASE(Global, parc_Certificate_GetDEREncodedPublicKey);
- LONGBOW_RUN_TEST_CASE(Global, parc_Certificate_GetPublicKey);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- parcSecurity_Init();
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- parcSecurity_Fini();
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Global, parc_Certificate_AcquireRelease)
-{
- PARCCertificate *certificate = parcCertificate_CreateFromInstance(_mockCertificate, NULL);
- assertNotNull(certificate, "Expected non-NULL certificate");
-
- PARCReferenceCount firstCount = parcObject_GetReferenceCount(certificate);
- PARCCertificate *copy = parcCertificate_Acquire(certificate);
- PARCReferenceCount secondCount = parcObject_GetReferenceCount(copy);
-
- assertTrue(firstCount == (secondCount - 1), "Expected incremented reference count after Acquire");
-
- parcCertificate_Release(&copy);
- PARCReferenceCount thirdCount = parcObject_GetReferenceCount(certificate);
-
- assertTrue(firstCount == thirdCount, "Expected equal reference counts after Release");
-
- parcCertificate_Release(&certificate);
-}
-
-LONGBOW_TEST_CASE(Global, parc_Certificate_Create)
-{
- PARCCertificate *certificate = parcCertificate_CreateFromInstance(_mockCertificate, NULL);
-
- assertNotNull(certificate, "Expected non-NULL certificate");
-
- parcCertificate_Release(&certificate);
-}
-
-LONGBOW_TEST_CASE(Global, parc_Certificate_GetContainerEncoding)
-{
- PARCCertificate *certificate = parcCertificate_CreateFromInstance(_mockCertificate, NULL);
- PARCContainerEncoding encoding = parcCertificate_GetContainerEncoding(certificate);
- assertTrue(encoding == PARCContainerEncoding_PEM, "Expected %d, got %d", PARCContainerEncoding_PEM, encoding);
- parcCertificate_Release(&certificate);
-}
-
-LONGBOW_TEST_CASE(Global, parc_Certificate_GetCertificateType)
-{
- PARCCertificate *certificate = parcCertificate_CreateFromInstance(_mockCertificate, NULL);
- PARCCertificateType type = parcCertificate_GetCertificateType(certificate);
- assertTrue(type == PARCCertificateType_X509, "Expected %d, got %d", PARCCertificateType_X509, type);
- parcCertificate_Release(&certificate);
-}
-
-LONGBOW_TEST_CASE(Global, parc_Certificate_GetPublicKeyDigest)
-{
- PARCCertificate *certificate = parcCertificate_CreateFromInstance(_mockCertificate, NULL);
-
- PARCCryptoHash *hash = parcCertificate_GetPublicKeyDigest(certificate);
- size_t length = parcBuffer_Remaining(parcCryptoHash_GetDigest(hash));
- size_t expected = 10;
- assertTrue(length == expected, "Expected length of %zu, got %zu", expected, length);
-
- parcCryptoHash_Release(&hash);
- parcCertificate_Release(&certificate);
-}
-
-LONGBOW_TEST_CASE(Global, parc_Certificate_GetCertificateDigest)
-{
- PARCCertificate *certificate = parcCertificate_CreateFromInstance(_mockCertificate, NULL);
-
- PARCCryptoHash *hash = parcCertificate_GetCertificateDigest(certificate);
- size_t length = parcBuffer_Remaining(parcCryptoHash_GetDigest(hash));
- size_t expected = 20;
- assertTrue(length == expected, "Expected length of %zu, got %zu", expected, length);
-
- parcCryptoHash_Release(&hash);
- parcCertificate_Release(&certificate);
-}
-
-LONGBOW_TEST_CASE(Global, parc_Certificate_GetDEREncodedCertificate)
-{
- PARCCertificate *certificate = parcCertificate_CreateFromInstance(_mockCertificate, NULL);
-
- PARCBuffer *buffer = parcCertificate_GetDEREncodedCertificate(certificate);
- size_t length = parcBuffer_Remaining(buffer);
- size_t expected = 30;
- assertTrue(length == expected, "Expected length of %zu, got %zu", expected, length);
-
- parcBuffer_Release(&buffer);
- parcCertificate_Release(&certificate);
-}
-
-LONGBOW_TEST_CASE(Global, parc_Certificate_GetDEREncodedPublicKey)
-{
- PARCCertificate *certificate = parcCertificate_CreateFromInstance(_mockCertificate, NULL);
-
- PARCBuffer *buffer = parcCertificate_GetDEREncodedPublicKey(certificate);
- size_t length = parcBuffer_Remaining(buffer);
- size_t expected = 40;
- assertTrue(length == expected, "Expected length of %zu, got %zu", expected, length);
-
- parcBuffer_Release(&buffer);
- parcCertificate_Release(&certificate);
-}
-
-LONGBOW_TEST_CASE(Global, parc_Certificate_GetPublicKey)
-{
- PARCCertificate *certificate = parcCertificate_CreateFromInstance(_mockCertificate, NULL);
-
- PARCKey *actual = parcCertificate_GetPublicKey(certificate);
- assertTrue(parcBuffer_Remaining(parcKey_GetKey(actual)) == 40,
- "Expected PARCKey size to be 40, got %zu",
- parcBuffer_Remaining(parcKey_GetKey(actual)));
- assertTrue(parcBuffer_Remaining(parcKeyId_GetKeyId(parcKey_GetKeyId(actual))) == 10,
- "Expected PARCKey keyId size to be 10, got %zu",
- parcBuffer_Remaining(parcKeyId_GetKeyId(parcKey_GetKeyId(actual))));
-
- parcKey_Release(&actual);
- parcCertificate_Release(&certificate);
-}
-
-int
-main(int argc, char *argv[argc])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(parc_Certificate);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_CertificateFactory.c b/libparc/parc/security/test/test_parc_CertificateFactory.c
deleted file mode 100755
index 29675f94..00000000
--- a/libparc/parc/security/test/test_parc_CertificateFactory.c
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <config.h>
-#include <stdio.h>
-#include <LongBow/unit-test.h>
-
-#include "../parc_CertificateFactory.c"
-#include <parc/security/parc_X509Certificate.h>
-#include <parc/algol/parc_SafeMemory.h>
-#include <parc/security/parc_Security.h>
-#include <parc/security/parc_CryptoHashType.h>
-#include <parc/algol/parc_Buffer.h>
-
-LONGBOW_TEST_RUNNER(parc_CertificateFactory)
-{
- LONGBOW_RUN_TEST_FIXTURE(Global);
-}
-
-LONGBOW_TEST_RUNNER_SETUP(parc_CertificateFactory)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(parc_CertificateFactory)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Global)
-{
- LONGBOW_RUN_TEST_CASE(Global, parc_CertificateFactory_AcquireRelease);
- LONGBOW_RUN_TEST_CASE(Global, parc_CertificateFactory_Create);
- LONGBOW_RUN_TEST_CASE(Global, parc_CertificateFactory_CreateFromFile);
- LONGBOW_RUN_TEST_CASE(Global, parc_CertificateFactory_CreateFromBuffer);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- parcSecurity_Init();
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- parcSecurity_Fini();
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Global, parc_CertificateFactory_AcquireRelease)
-{
- PARCCertificateFactory *factory = parcCertificateFactory_Create(PARCCertificateType_X509, PARCContainerEncoding_PEM);
- assertNotNull(factory, "Expected non-NULL factory");
-
- PARCReferenceCount firstCount = parcObject_GetReferenceCount(factory);
- PARCCertificateFactory *copy = parcCertificateFactory_Acquire(factory);
- PARCReferenceCount secondCount = parcObject_GetReferenceCount(copy);
-
- assertTrue(firstCount == (secondCount - 1), "Expected incremented reference count after Acquire");
-
- parcCertificateFactory_Release(&copy);
- PARCReferenceCount thirdCount = parcObject_GetReferenceCount(factory);
-
- assertTrue(firstCount == thirdCount, "Expected equal reference counts after Release");
-
- parcCertificateFactory_Release(&factory);
-}
-
-LONGBOW_TEST_CASE(Global, parc_CertificateFactory_Create)
-{
- PARCCertificateFactory *factory = parcCertificateFactory_Create(PARCCertificateType_X509, PARCContainerEncoding_PEM);
- assertNotNull(factory, "Expected non-NULL factory");
- assertTrue(factory->encoding == PARCContainerEncoding_PEM, "Expected PARCContainerEncoding_PEM (%d) encoding, got %d",
- PARCContainerEncoding_PEM, factory->encoding);
- assertTrue(factory->type == PARCCertificateType_X509, "Expected PARCCertificateType_X509 (%d) type, got %d",
- PARCCertificateType_X509, factory->type);
- parcCertificateFactory_Release(&factory);
-}
-
-LONGBOW_TEST_CASE(Global, parc_CertificateFactory_CreateFromFile)
-{
- PARCCertificateFactory *factory = parcCertificateFactory_Create(PARCCertificateType_X509, PARCContainerEncoding_PEM);
- assertNotNull(factory, "Expected non-NULL factory");
-
- char *filename = "test.pem";
- PARCCertificate *certificate = parcCertificateFactory_CreateCertificateFromFile(factory, filename, NULL);
-
- assertNotNull(certificate, "Expected non-NULL certificate");
- assertTrue(parcCertificate_GetContainerEncoding(certificate) == PARCContainerEncoding_PEM,
- "Expected PARCContainerEncoding_PEM encoding, got %d", parcCertificate_GetContainerEncoding(certificate));
- assertTrue(parcCertificate_GetCertificateType(certificate) == PARCCertificateType_X509,
- "Expected PARCCertificateType_X509 type, got %d", parcCertificate_GetCertificateType(certificate));
-
- parcCertificate_Release(&certificate);
- parcCertificateFactory_Release(&factory);
-
- factory = parcCertificateFactory_Create(PARCCertificateType_Invalid, PARCContainerEncoding_PEM);
-
- PARCCertificate *nullCertificate = parcCertificateFactory_CreateCertificateFromFile(factory, filename, NULL);
- assertNull(nullCertificate, "Expected NULL certificate to be returned from factory with an unsupported configuration");
-
- parcCertificateFactory_Release(&factory);
-}
-
-LONGBOW_TEST_CASE(Global, parc_CertificateFactory_CreateFromBuffer)
-{
- PARCCertificateFactory *factory = parcCertificateFactory_Create(PARCCertificateType_X509, PARCContainerEncoding_DER);
- assertNotNull(factory, "Expected non-NULL factory");
-
- char *filename = "test.pem";
- PARCX509Certificate *realCertificate = parcX509Certificate_CreateFromPEMFile(filename);
- PARCBuffer *certificateBuffer = parcX509Certificate_GetDEREncodedCertificate(realCertificate);
-
- PARCCertificate *certificate = parcCertificateFactory_CreateCertificateFromBuffer(factory, certificateBuffer);
-
- assertNotNull(certificate, "Expected non-NULL certificate");
- assertTrue(parcCertificate_GetContainerEncoding(certificate) == PARCContainerEncoding_DER,
- "Expected PARCContainerEncoding_DER encoding, got %d", parcCertificate_GetContainerEncoding(certificate));
- assertTrue(parcCertificate_GetCertificateType(certificate) == PARCCertificateType_X509,
- "Expected PARCCertificateType_X509 type, got %d", parcCertificate_GetCertificateType(certificate));
-
- parcCertificate_Release(&certificate);
- parcCertificateFactory_Release(&factory);
- parcX509Certificate_Release(&realCertificate);
-
- factory = parcCertificateFactory_Create(PARCCertificateType_Invalid, PARCContainerEncoding_PEM);
-
- PARCBuffer *invalid = parcBuffer_Allocate(10);
- PARCCertificate *nullCertificate = parcCertificateFactory_CreateCertificateFromBuffer(factory, invalid);
- assertNull(nullCertificate, "Expected NULL certificate to be returned from factory with an unsupported configuration");
-
- parcBuffer_Release(&invalid);
- parcCertificateFactory_Release(&factory);
-}
-
-int
-main(int argc, char *argv[argc])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(parc_CertificateFactory);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_CertificateType.c b/libparc/parc/security/test/test_parc_CertificateType.c
deleted file mode 100755
index 67ce5e87..00000000
--- a/libparc/parc/security/test/test_parc_CertificateType.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <config.h>
-#include <stdio.h>
-#include <LongBow/unit-test.h>
-
-#include "../parc_CertificateType.c"
-#include <parc/algol/parc_SafeMemory.h>
-#include <parc/security/parc_CryptoHashType.h>
-#include <parc/algol/parc_Buffer.h>
-
-LONGBOW_TEST_RUNNER(parc_CertificateType)
-{
- LONGBOW_RUN_TEST_FIXTURE(Global);
-}
-
-LONGBOW_TEST_RUNNER_SETUP(parc_CertificateType)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(parc_CertificateType)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Global)
-{
- LONGBOW_RUN_TEST_CASE(Global, parc_CertificateType_FromString);
- LONGBOW_RUN_TEST_CASE(Global, parc_CertificateType_ToString);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Global, parc_CertificateType_FromString)
-{
- char *inputString = "PARCCertificateType_X509";
- PARCCertificateType encoding = parcCertificateType_FromString(inputString);
- assertTrue(encoding == PARCCertificateType_X509, "Expected PARCCertificateType_X509 (%d), for %d", PARCCertificateType_X509, encoding);
-
- inputString = "the cake is a lie";
- encoding = parcCertificateType_FromString(inputString);
- assertTrue(encoding == PARCCertificateType_Invalid, "Expected PARCCertificateType_Invalid (%d), for %d", PARCCertificateType_Invalid, encoding);
-}
-
-LONGBOW_TEST_CASE(Global, parc_CertificateType_ToString)
-{
- char *expected = "PARCCertificateType_X509";
- PARCCertificateType encoding = PARCCertificateType_X509;
- const char *actual = parcCertificateType_ToString(encoding);
- assertTrue(strcmp(actual, expected) == 0, "Expected %s, got %s", expected, actual);
-
- actual = parcCertificateType_ToString(PARCCertificateType_Invalid);
- assertNull(actual, "Expected NULL string to be returned with invalid certificate type");
-}
-
-int
-main(int argc, char *argv[argc])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(parc_CertificateType);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_ContainerEncoding.c b/libparc/parc/security/test/test_parc_ContainerEncoding.c
deleted file mode 100755
index 01cafa50..00000000
--- a/libparc/parc/security/test/test_parc_ContainerEncoding.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <config.h>
-#include <stdio.h>
-#include <LongBow/unit-test.h>
-
-#include "../parc_ContainerEncoding.c"
-#include <parc/algol/parc_SafeMemory.h>
-#include <parc/security/parc_CryptoHashType.h>
-#include <parc/algol/parc_Buffer.h>
-
-LONGBOW_TEST_RUNNER(parc_ContainerEncoding)
-{
- LONGBOW_RUN_TEST_FIXTURE(Global);
-}
-
-LONGBOW_TEST_RUNNER_SETUP(parc_ContainerEncoding)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(parc_ContainerEncoding)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Global)
-{
- LONGBOW_RUN_TEST_CASE(Global, parc_ContainerEncoding_FromString);
- LONGBOW_RUN_TEST_CASE(Global, parc_ContainerEncoding_ToString);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Global, parc_ContainerEncoding_FromString)
-{
- char *inputString = "PARCContainerEncoding_PEM";
- PARCContainerEncoding encoding = parcContainerEncoding_FromString(inputString);
- assertTrue(encoding == PARCContainerEncoding_PEM, "Expected PARCContainerEncoding_PEM (%d), for %d", PARCContainerEncoding_PEM, encoding);
-
- inputString = "the cake is a lie";
- encoding = parcContainerEncoding_FromString(inputString);
- assertTrue(encoding == PARCContainerEncoding_Invalid, "Expected PARCContainerEncoding_Invalid (%d), for %d", PARCContainerEncoding_Invalid, encoding);
-}
-
-LONGBOW_TEST_CASE(Global, parc_ContainerEncoding_ToString)
-{
- char *expected = "PARCContainerEncoding_PEM";
- PARCContainerEncoding encoding = PARCContainerEncoding_PEM;
- const char *actual = parcContainerEncoding_ToString(encoding);
- assertTrue(strcmp(actual, expected) == 0, "Expected %s, got %s", expected, actual);
-
- actual = parcContainerEncoding_ToString(PARCContainerEncoding_Invalid);
- assertNull(actual, "Expected NULL string to be returned with invalid encoding type");
-}
-
-int
-main(int argc, char *argv[argc])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(parc_ContainerEncoding);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_CryptoCache.c b/libparc/parc/security/test/test_parc_CryptoCache.c
deleted file mode 100755
index 8613808d..00000000
--- a/libparc/parc/security/test/test_parc_CryptoCache.c
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <config.h>
-#include <LongBow/unit-test.h>
-
-// Include the file(s) containing the functions to be tested.
-// This permits internal static functions to be visible to this Test Framework.
-#include "../parc_CryptoCache.c"
-#include <parc/algol/parc_SafeMemory.h>
-#include <parc/algol/parc_BufferComposer.h>
-#include <parc/security/parc_CryptoHashType.h>
-
-LONGBOW_TEST_RUNNER(parc_CryptoCache)
-{
- // The following Test Fixtures will run their corresponding Test Cases.
- // Test Fixtures are run in the order specified, but all tests should be idempotent.
- // Never rely on the execution order of tests or share state between them.
- LONGBOW_RUN_TEST_FIXTURE(Allocate);
- LONGBOW_RUN_TEST_FIXTURE(Global);
-}
-
-// The Test Runner calls this function once before any Test Fixtures are run.
-LONGBOW_TEST_RUNNER_SETUP(parc_CryptoCache)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(parc_CryptoCache)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Allocate)
-{
- LONGBOW_RUN_TEST_CASE(Allocate, parcCryptoCache_Create_Destroy);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Allocate)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Allocate)
-{
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Allocate, parcCryptoCache_Create_Destroy)
-{
- PARCCryptoCache *cache = parcCryptoCache_Create();
- parcCryptoCache_Destroy(&cache);
-}
-
-static PARCCryptoCache *cache_under_test;
-
-LONGBOW_TEST_FIXTURE(Global)
-{
- LONGBOW_RUN_TEST_CASE(Global, parcCryptoCache_AddGetKey);
- LONGBOW_RUN_TEST_CASE(Global, parcCryptoCache_GetMissingKey);
- LONGBOW_RUN_TEST_CASE(Global, parcCryptoCache_GetWrongKey);
- LONGBOW_RUN_TEST_CASE(Global, parcCryptoCache_RemoveKey);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- cache_under_test = parcCryptoCache_Create();
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- parcCryptoCache_Destroy(&cache_under_test);
-
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Global, parcCryptoCache_AddGetKey)
-{
- PARCBuffer *bb_id = parcBuffer_Wrap("choo choo", 9, 0, 9);
- PARCKeyId *keyid = parcKeyId_Create(bb_id);
- parcBuffer_Release(&bb_id);
-
- PARCBufferComposer *composer = parcBufferComposer_Create();
- parcBufferComposer_PutString(composer, "quack quack");
- PARCBuffer *bb_key = parcBufferComposer_ProduceBuffer(composer);
- PARCKey *key = parcKey_CreateFromDerEncodedPublicKey(keyid, PARCSigningAlgorithm_RSA, bb_key);
-
- parcCryptoCache_AddKey(cache_under_test, key);
-
- const PARCKey *test = parcCryptoCache_GetKey(cache_under_test, keyid);
-
- parcBuffer_Release(&bb_key);
- parcBufferComposer_Release(&composer);
- parcKeyId_Release(&keyid);
-
- assertTrue(parcKey_Equals(key, test), "did not return expected key from cache");
- parcKey_Release(&key);
-}
-
-LONGBOW_TEST_CASE(Global, parcCryptoCache_GetMissingKey)
-{
- PARCBuffer *bb_id = parcBuffer_Wrap("choo choo", 9, 0, 9);
- PARCKeyId *keyid = parcKeyId_Create(bb_id);
- parcBuffer_Release(&bb_id);
-
- const PARCKey *test = parcCryptoCache_GetKey(cache_under_test, keyid);
-
- assertNull(test, "Get missing key returned something!");
-
- parcKeyId_Release(&keyid);
-}
-
-LONGBOW_TEST_CASE(Global, parcCryptoCache_GetWrongKey)
-{
- PARCBuffer *bb_id = parcBuffer_Wrap("choo choo", 9, 0, 9);
- PARCBuffer *bb_id2 = parcBuffer_Wrap("not here!", 9, 0, 9);
-
- PARCKeyId *keyid = parcKeyId_Create(bb_id);
- parcBuffer_Release(&bb_id);
-
- PARCKeyId *keyid2 = parcKeyId_Create(bb_id2);
- parcBuffer_Release(&bb_id2);
-
- PARCBufferComposer *composer = parcBufferComposer_Create();
- parcBufferComposer_PutString(composer, "quack quack");
- PARCBuffer *bb_key = parcBufferComposer_ProduceBuffer(composer);
- PARCKey *key = parcKey_CreateFromDerEncodedPublicKey(keyid, PARCSigningAlgorithm_RSA, bb_key);
-
- parcCryptoCache_AddKey(cache_under_test, key);
-
- const PARCKey *test = parcCryptoCache_GetKey(cache_under_test, keyid2);
- assertNull(test, "Get missing key returned something!");
-
- parcKey_Release(&key);
- parcBuffer_Release(&bb_key);
- parcBufferComposer_Release(&composer);
- parcKeyId_Release(&keyid);
- parcKeyId_Release(&keyid2);
-}
-
-/**
- * Add in 2 keys, remove 1, fetch the other
- */
-LONGBOW_TEST_CASE(Global, parcCryptoCache_RemoveKey)
-{
- PARCBufferComposer *composer1 = parcBufferComposer_Create();
- parcBufferComposer_PutString(composer1, "quack quack");
- PARCBuffer *bb_key1 = parcBufferComposer_ProduceBuffer(composer1);
-
- PARCBufferComposer *composer2 = parcBufferComposer_Create();
- parcBufferComposer_PutString(composer2, "Come with me and you'll be");
- PARCBuffer *bb_key2 = parcBufferComposer_ProduceBuffer(composer2);
-
- PARCBuffer *bb_id = parcBuffer_Wrap("choo choo", 9, 0, 9);
- PARCBuffer *bb_id2 = parcBuffer_Wrap("not here!", 9, 0, 9);
-
- PARCKeyId *keyid1 = parcKeyId_Create(bb_id);
- parcBuffer_Release(&bb_id);
- PARCKeyId *keyid2 = parcKeyId_Create(bb_id2);
- parcBuffer_Release(&bb_id2);
-
- PARCKey *key1 = parcKey_CreateFromDerEncodedPublicKey(keyid1, PARCSigningAlgorithm_RSA, bb_key1);
- PARCKey *key2 = parcKey_CreateFromDerEncodedPublicKey(keyid2, PARCSigningAlgorithm_RSA, bb_key2);
- const PARCKey *test;
-
- parcCryptoCache_AddKey(cache_under_test, key1);
- parcCryptoCache_AddKey(cache_under_test, key2);
-
- test = parcCryptoCache_GetKey(cache_under_test, keyid1);
- assertTrue(parcKey_Equals(key1, test), "Got wrong key");
-
- test = parcCryptoCache_GetKey(cache_under_test, keyid2);
- assertTrue(parcKey_Equals(key2, test), "Got wrong key");
-
- // remove will free the key, so make a copy of it before removing
- PARCKeyId *keyid1_copy = parcKeyId_Copy(keyid1);
- parcCryptoCache_RemoveKey(cache_under_test, keyid1);
-
- test = parcCryptoCache_GetKey(cache_under_test, keyid1_copy);
- assertNull(test, "Get of deleted key returned non-null");
-
- test = parcCryptoCache_GetKey(cache_under_test, keyid2);
- assertTrue(parcKey_Equals(key2, test), "Got wrong key");
-
-
- parcKey_Release(&key1);
- parcKey_Release(&key2);
-
- parcBuffer_Release(&bb_key1);
- parcBufferComposer_Release(&composer1);
- parcKeyId_Release(&keyid1);
- parcBuffer_Release(&bb_key2);
- parcBufferComposer_Release(&composer2);
- parcKeyId_Release(&keyid2);
-
- parcKeyId_Release(&keyid1_copy);
-}
-
-int
-main(int argc, char *argv[argc])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(parc_CryptoCache);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_CryptoHash.c b/libparc/parc/security/test/test_parc_CryptoHash.c
deleted file mode 100755
index df5409b2..00000000
--- a/libparc/parc/security/test/test_parc_CryptoHash.c
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-// Include the file(s) containing the functions to be tested.
-// This permits internal static functions to be visible to this Test Framework.
-#include "../parc_CryptoHash.c"
-#include "../parc_CryptoHasher.h"
-
-#include <LongBow/unit-test.h>
-#include <parc/testing/parc_ObjectTesting.h>
-#include <fcntl.h>
-#include <errno.h>
-
-const int bufferLength = 1024;
-
-LONGBOW_TEST_RUNNER(parc_CryptoHash)
-{
- // The following Test Fixtures will run their corresponding Test Cases.
- // Test Fixtures are run in the order specified, but all tests should be idempotent.
- // Never rely on the execution order of tests or share state between them.
- LONGBOW_RUN_TEST_FIXTURE(Global);
-}
-
-// The Test Runner calls this function once before any Test Fixtures are run.
-LONGBOW_TEST_RUNNER_SETUP(parc_CryptoHash)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(parc_CryptoHash)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Global)
-{
- LONGBOW_RUN_TEST_CASE(Global, parcCryptoHash_CreateFromArray);
- LONGBOW_RUN_TEST_CASE(Global, parcCryptoHash_Release);
- LONGBOW_RUN_TEST_CASE(Global, parcCryptoHash_Equals);
- LONGBOW_RUN_TEST_CASE(Global, parcCryptoHash_GetDigest);
- LONGBOW_RUN_TEST_CASE(Global, parcCryptoHash_GetDigestType);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Global, parcCryptoHash_CreateFromArray)
-{
- int fd = open("test_digest_bytes_128.sha256", O_RDONLY);
- assertFalse(fd < 0, "Could not open %s: %s", "test_digest_bytes_128.sha256", strerror(errno));
-
- uint8_t scratch[bufferLength];
- ssize_t read_length = read(fd, scratch, bufferLength);
-
- PARCCryptoHash *hash = parcCryptoHash_CreateFromArray(PARCCryptoHashType_SHA256, scratch, read_length);
- assertNotNull(hash, "Expected to be non null");
-
- parcCryptoHash_Release(&hash);
- close(fd);
-}
-
-LONGBOW_TEST_CASE(Global, parcCryptoHash_Release)
-{
- int fd = open("test_digest_bytes_128.sha256", O_RDONLY);
- assertFalse(fd < 0, "Could not open %s: %s", "test_digest_bytes_128.sha256", strerror(errno));
-
- uint8_t scratch[bufferLength];
- ssize_t read_length = read(fd, scratch, bufferLength);
-
- PARCCryptoHash *hash = parcCryptoHash_CreateFromArray(PARCCryptoHashType_SHA256, scratch, read_length);
- assertNotNull(hash, "Expected to be non null");
-
- parcCryptoHash_Release(&hash);
- assertNull(hash, "Expected to be null");
- close(fd);
-}
-
-LONGBOW_TEST_CASE(Global, parcCryptoHash_Equals)
-{
- int fd1 = open("test_digest_bytes_128.sha256", O_RDONLY);
- assertFalse(fd1 < 0, "Could not open %s: %s", "test_digest_bytes_128.sha256", strerror(errno));
-
- uint8_t scratch1[bufferLength];
- ssize_t read_length = read(fd1, scratch1, bufferLength);
-
- PARCCryptoHash *hash1 = parcCryptoHash_CreateFromArray(PARCCryptoHashType_SHA256, scratch1, read_length);
- PARCCryptoHash *hash2 = parcCryptoHash_CreateFromArray(PARCCryptoHashType_SHA256, scratch1, read_length);
- PARCCryptoHash *hash3 = parcCryptoHash_CreateFromArray(PARCCryptoHashType_SHA256, scratch1, read_length);
-
- int fd2 = open("test_digest_bytes_128.sha512", O_RDONLY);
- assertFalse(fd2 < 0, "Could not open %s: %s", "test_digest_bytes_128.sha512", strerror(errno));
-
- uint8_t scratch2[bufferLength];
- read_length = read(fd2, scratch2, bufferLength);
-
- PARCCryptoHash *unequalhash = parcCryptoHash_CreateFromArray(PARCCryptoHashType_SHA256, scratch2, read_length);
-
- parcObjectTesting_AssertEqualsFunction(parcObject_Equals, hash1, hash2, hash3, unequalhash);
-
- parcCryptoHash_Release(&hash1);
- parcCryptoHash_Release(&hash2);
- parcCryptoHash_Release(&hash3);
- parcCryptoHash_Release(&unequalhash);
-
- close(fd1);
- close(fd2);
-}
-
-LONGBOW_TEST_CASE(Global, parcCryptoHash_GetDigest)
-{
- int fd_buffer = open("test_digest_bytes_128.bin", O_RDONLY);
- int fd_truth = open("test_digest_bytes_128.sha256", O_RDONLY);
- assertFalse(fd_buffer < 0, "Could not open %s: %s", "test_digest_bytes_128.bin", strerror(errno));
- assertFalse(fd_truth < 0, "Could not open %s: %s", "test_digest_bytes_128.sha256", strerror(errno));
-
- uint8_t scratch[bufferLength];
- ssize_t read_length = read(fd_truth, scratch, bufferLength);
-
- PARCCryptoHash *hashTruth = parcCryptoHash_CreateFromArray(PARCCryptoHashType_SHA256, scratch, read_length);
-
- read_length = read(fd_buffer, scratch, bufferLength);
-
- PARCCryptoHasher *hasher = parcCryptoHasher_Create(PARCCryptoHashType_SHA256);
- parcCryptoHasher_Init(hasher);
- parcCryptoHasher_UpdateBytes(hasher, scratch, read_length);
-
- PARCCryptoHash *hashTest = parcCryptoHasher_Finalize(hasher);
-
- assertTrue(parcBuffer_Equals(parcCryptoHash_GetDigest(hashTruth), parcCryptoHash_GetDigest(hashTest)), "Expected to be true");
-
- parcCryptoHasher_Release(&hasher);
- parcCryptoHash_Release(&hashTruth);
- parcCryptoHash_Release(&hashTest);
-
- close(fd_buffer);
- close(fd_truth);
-}
-
-LONGBOW_TEST_CASE(Global, parcCryptoHash_GetDigestType)
-{
- int fd = open("test_digest_bytes_128.sha256", O_RDONLY);
- assertFalse(fd < 0, "Could not open %s: %s", "test_digest_bytes_128.sha256", strerror(errno));
-
- uint8_t scratch[bufferLength];
- ssize_t read_length = read(fd, scratch, bufferLength);
-
- PARCCryptoHash *hash = parcCryptoHash_CreateFromArray(PARCCryptoHashType_SHA256, scratch, read_length);
- assertNotNull(hash, "Expected to be non null");
-
- assertTrue(PARCCryptoHashType_SHA256 == parcCryptoHash_GetDigestType(hash), "Expected to be true");
-
- parcCryptoHash_Release(&hash);
- close(fd);
-}
-
-int
-main(int argc, char *argv[])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(parc_CryptoHash);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner, NULL);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_CryptoHashType.c b/libparc/parc/security/test/test_parc_CryptoHashType.c
deleted file mode 100644
index 1e1cc68b..00000000
--- a/libparc/parc/security/test/test_parc_CryptoHashType.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-// Include the file(s) containing the functions to be tested.
-// This permits internal static functions to be visible to this Test Framework.
-#include "../parc_CryptoHashType.c"
-
-#include <LongBow/unit-test.h>
-
-LONGBOW_TEST_RUNNER(parc_CryptoHashType)
-{
- // The following Test Fixtures will run their corresponding Test Cases.
- // Test Fixtures are run in the order specified, but all tests should be idempotent.
- // Never rely on the execution order of tests or share state between them.
- LONGBOW_RUN_TEST_FIXTURE(Global);
-}
-
-// The Test Runner calls this function once before any Test Fixtures are run.
-LONGBOW_TEST_RUNNER_SETUP(parc_CryptoHashType)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(parc_CryptoHashType)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Global)
-{
- LONGBOW_RUN_TEST_CASE(Global, parcCryptoHashType_FromString);
- LONGBOW_RUN_TEST_CASE(Global, parcCryptoHashType_ToString);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Global, parcCryptoHashType_FromString)
-{
- assertTrue(PARCCryptoHashType_SHA256 == parcCryptoHashType_FromString("PARCCryptoHashType_SHA256"), "Expected true");
-
- assertTrue(PARCCryptoHashType_SHA512 == parcCryptoHashType_FromString("PARCCryptoHashType_SHA512"), "Expected true");
-
- assertTrue(PARCCryptoHashType_CRC32C == parcCryptoHashType_FromString("PARCCryptoHashType_CRC32C"), "Expected true");
-
- assertTrue(PARCCryptoHashType_NULL == parcCryptoHashType_FromString("NULL"), "Expected true");
-}
-
-LONGBOW_TEST_CASE(Global, parcCryptoHashType_ToString)
-{
- const char *string1 = parcCryptoHashType_ToString(PARCCryptoHashType_SHA256);
- assertNotNull(string1, "Expected non-null result.");
-
- const char *string2 = parcCryptoHashType_ToString(PARCCryptoHashType_SHA512);
- assertNotNull(string2, "Expected non-null result.");
-
- const char *string3 = parcCryptoHashType_ToString(PARCCryptoHashType_CRC32C);
- assertNotNull(string3, "Expected non-null result.");
-
- const char *string4 = parcCryptoHashType_ToString(PARCCryptoHashType_NULL);
- assertNull(string4, "Expected to be null");
-}
-
-int
-main(int argc, char *argv[argc])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(parc_CryptoHashType);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner, NULL);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_CryptoHasher.c b/libparc/parc/security/test/test_parc_CryptoHasher.c
deleted file mode 100755
index 33a3f6bc..00000000
--- a/libparc/parc/security/test/test_parc_CryptoHasher.c
+++ /dev/null
@@ -1,407 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <config.h>
-#include <stdio.h>
-#include <LongBow/unit-test.h>
-
-#include <parc/algol/parc_SafeMemory.h>
-#include <parc/algol/parc_BufferComposer.h>
-#include <parc/security/parc_Security.h>
-
-// Include the file(s) containing the functions to be tested.
-// This permits internal static functions to be visible to this Test Framework.
-#include "../parc_CryptoHasher.c"
-
-#include <fcntl.h>
-#include <errno.h>
-#include <sys/time.h>
-
-const int bufferLength = 1024;
-
-/*
- * Ground truth set derived from CRC RevEng http://reveng.sourceforge.net
- * e.g. reveng -c -m CRC-32C 313233343536373839 gives the canonical check value 0xe306928e
- *
- * You can also calcaulate them online at http://www.zorc.breitbandkatze.de/crc.html using
- * CRC polynomial 0x1EDC6F41, init 0xFFFFFFFF, final 0xFFFFFFFF, reverse data bytes (check),
- * and reverse CRC result before final XOR (check).
- *
- */
-struct test_vector {
- uint32_t crc32c;
- int length;
- uint8_t *buffer;
-} vectors[] = {
- { .crc32c = 0xe3069283, .length = 9, .buffer = (uint8_t []) { '1', '2', '3', '4', '5', '6', '7', '8', '9' } },
- { .crc32c = 0xddb65633, .length = 1, .buffer = (uint8_t []) { 0x3D } },
- { .crc32c = 0xc203c1fd, .length = 2, .buffer = (uint8_t []) { 0x3D, 0x41 } },
- { .crc32c = 0x80a9d169, .length = 3, .buffer = (uint8_t []) { 'b', 'e', 'e' } },
- { .crc32c = 0xa099f534, .length = 4, .buffer = (uint8_t []) { 'h', 'e', 'l', 'l' } },
- { .crc32c = 0x9a71bb4c, .length = 5, .buffer = (uint8_t []) { 'h', 'e', 'l', 'l', 'o' } },
- { .crc32c = 0x2976E503, .length = 6, .buffer = (uint8_t []) { 'g', 'r', 'u', 'm', 'p', 'y' } },
- { .crc32c = 0xe627f441, .length = 7, .buffer = (uint8_t []) { 'a', 'b', 'c', 'd', 'e', 'f', 'g' } },
- { .crc32c = 0x2d265c1d, .length = 13, .buffer = (uint8_t []) { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'c', 'd', 'e', 'f'} },
- { .crc32c = 0, .length = 0, .buffer = NULL }
-};
-
-
-LONGBOW_TEST_RUNNER(parc_CryptoHasher)
-{
- // The following Test Fixtures will run their corresponding Test Cases.
- // Test Fixtures are run in the order specified, but all tests should be idempotent.
- // Never rely on the execution order of tests or share state between them.
- LONGBOW_RUN_TEST_FIXTURE(Global);
- LONGBOW_RUN_TEST_FIXTURE(Local);
-// LONGBOW_RUN_TEST_FIXTURE(Performance);
-}
-
-// The Test Runner calls this function once before any Test Fixtures are run.
-LONGBOW_TEST_RUNNER_SETUP(parc_CryptoHasher)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(parc_CryptoHasher)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Global)
-{
- LONGBOW_RUN_TEST_CASE(Global, parcCryptoHasher_Create);
-
- LONGBOW_RUN_TEST_CASE(Global, parcCryptoHasher_Bytes_256);
- LONGBOW_RUN_TEST_CASE(Global, parcCryptoHasher_Buffer_256);
-
- LONGBOW_RUN_TEST_CASE(Global, parcCryptoHasher_Bytes_512);
- LONGBOW_RUN_TEST_CASE(Global, parcCryptoHasher_Buffer_512);
-
- LONGBOW_RUN_TEST_CASE(Global, parcCryptoHasher_CRC32);
-
- LONGBOW_RUN_TEST_CASE(Global, parcCryptoHasher_CustomHasher);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- parcSecurity_Init();
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- parcSecurity_Fini();
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Global, parcCryptoHasher_Create)
-{
- PARCCryptoHasher *hasher;
-
- hasher = parcCryptoHasher_Create(PARCCryptoHashType_SHA256);
- parcCryptoHasher_Release(&hasher);
-
- hasher = parcCryptoHasher_Create(PARCCryptoHashType_SHA512);
- PARCCryptoHasher *handle = parcCryptoHasher_Acquire(hasher);
-
- assertTrue(parcObject_GetReferenceCount(handle) == 2, "Expected 2 references");
-
- parcCryptoHasher_Release(&hasher);
- parcCryptoHasher_Release(&handle);
-}
-
-LONGBOW_TEST_CASE(Global, parcCryptoHasher_Bytes_256)
-{
- int fd_buffer = open("test_digest_bytes_128.bin", O_RDONLY);
- int fd_truth = open("test_digest_bytes_128.sha256", O_RDONLY);
- assertFalse(fd_buffer < 0, "Could not open %s: %s", "test_digest_bytes_128.bin", strerror(errno));
- assertFalse(fd_truth < 0, "Could not open %s: %s", "test_digest_bytes_128.sha256", strerror(errno));
-
- uint8_t scratch[bufferLength];
- ssize_t read_length;
-
- read_length = read(fd_truth, scratch, bufferLength);
-
- PARCCryptoHash *digestTruth = parcCryptoHash_CreateFromArray(PARCCryptoHashType_SHA256, scratch, read_length);
-
- read_length = read(fd_buffer, scratch, bufferLength);
-
- PARCCryptoHasher *digester = parcCryptoHasher_Create(PARCCryptoHashType_SHA256);
- parcCryptoHasher_Init(digester);
- parcCryptoHasher_UpdateBytes(digester, scratch, read_length);
-
- PARCCryptoHash *digestTest = parcCryptoHasher_Finalize(digester);
-
- assertTrue(parcCryptoHash_Equals(digestTruth, digestTest),
- "sha256 digest of 128-byte buffer using Update_Buffer does not match");
-
- parcCryptoHasher_Release(&digester);
- parcCryptoHash_Release(&digestTruth);
- parcCryptoHash_Release(&digestTest);
-
- close(fd_buffer);
- close(fd_truth);
-}
-
-LONGBOW_TEST_CASE(Global, parcCryptoHasher_Buffer_256)
-{
- int fd_buffer = open("test_digest_bytes_128.bin", O_RDONLY);
- int fd_truth = open("test_digest_bytes_128.sha256", O_RDONLY);
- assertFalse(fd_buffer < 0, "Could not open %s: %s", "test_digest_bytes_128.bin", strerror(errno));
- assertFalse(fd_truth < 0, "Could not open %s: %s", "test_digest_bytes_128.sha256", strerror(errno));
-
- uint8_t scratch[bufferLength];
-
- ssize_t read_length = read(fd_buffer, scratch, bufferLength);
- PARCBufferComposer *composer = parcBufferComposer_Create();
- parcBufferComposer_PutArray(composer, scratch, read_length);
- PARCBuffer *bb_to_digest = parcBufferComposer_ProduceBuffer(composer);
-
- read_length = read(fd_truth, scratch, bufferLength);
- PARCCryptoHash *digestTruth = parcCryptoHash_CreateFromArray(PARCCryptoHashType_SHA256, scratch, read_length);
-
- PARCCryptoHasher *digester = parcCryptoHasher_Create(PARCCryptoHashType_SHA256);
- parcCryptoHasher_Init(digester);
- parcCryptoHasher_UpdateBuffer(digester, bb_to_digest);
- PARCCryptoHash *digestTest = parcCryptoHasher_Finalize(digester);
-
- assertTrue(parcCryptoHash_Equals(digestTruth, digestTest),
- "sha256 digest of 128-byte buffer using Update_Buffer does not match");
-
- parcCryptoHasher_Release(&digester);
- parcBuffer_Release(&bb_to_digest);
- parcBufferComposer_Release(&composer);
- parcCryptoHash_Release(&digestTruth);
- parcCryptoHash_Release(&digestTest);
-
- close(fd_buffer);
- close(fd_truth);
-}
-
-// ==== 512
-
-LONGBOW_TEST_CASE(Global, parcCryptoHasher_Bytes_512)
-{
- PARCCryptoHasher *digester;
-
- int fd_buffer = open("test_digest_bytes_128.bin", O_RDONLY);
- int fd_truth = open("test_digest_bytes_128.sha512", O_RDONLY);
- assertFalse(fd_buffer < 0, "Could not open %s: %s", "test_digest_bytes_128.bin", strerror(errno));
- assertFalse(fd_truth < 0, "Could not open %s: %s", "test_digest_bytes_128.sha512", strerror(errno));
-
- uint8_t scratch[bufferLength];
- ssize_t read_length;
-
- read_length = read(fd_truth, scratch, bufferLength);
- PARCCryptoHash *digestTruth = parcCryptoHash_CreateFromArray(PARCCryptoHashType_SHA512, scratch, read_length);
-
- read_length = read(fd_buffer, scratch, bufferLength);
-
-
- digester = parcCryptoHasher_Create(PARCCryptoHashType_SHA512);
- parcCryptoHasher_Init(digester);
- parcCryptoHasher_UpdateBytes(digester, scratch, read_length);
- PARCCryptoHash *digestTest = parcCryptoHasher_Finalize(digester);
-
- assertTrue(parcCryptoHash_Equals(digestTruth, digestTest), "sha512 digest of 128-byte buffer using Update_Buffer does not match");
-
- parcCryptoHasher_Release(&digester);
- parcCryptoHash_Release(&digestTruth);
- parcCryptoHash_Release(&digestTest);
-
- close(fd_buffer);
- close(fd_truth);
-}
-
-LONGBOW_TEST_CASE(Global, parcCryptoHasher_Buffer_512)
-{
- int fd_buffer = open("test_digest_bytes_128.bin", O_RDONLY);
- int fd_truth = open("test_digest_bytes_128.sha512", O_RDONLY);
- assertFalse(fd_buffer < 0, "Could not open %s: %s", "test_digest_bytes_128.bin", strerror(errno));
- assertFalse(fd_truth < 0, "Could not open %s: %s", "test_digest_bytes_128.sha512", strerror(errno));
-
- uint8_t scratch[bufferLength];
- ssize_t read_length;
-
- read_length = read(fd_buffer, scratch, bufferLength);
- PARCBufferComposer *composer = parcBufferComposer_Create();
- parcBufferComposer_PutArray(composer, scratch, read_length);
- PARCBuffer *bb_to_digest = parcBufferComposer_ProduceBuffer(composer);
-
- read_length = read(fd_truth, scratch, bufferLength);
- PARCCryptoHash *digestTruth = parcCryptoHash_CreateFromArray(PARCCryptoHashType_SHA512, scratch, read_length);
-
- PARCCryptoHasher *digester = parcCryptoHasher_Create(PARCCryptoHashType_SHA512);
- parcCryptoHasher_Init(digester);
- parcCryptoHasher_UpdateBuffer(digester, bb_to_digest);
- PARCCryptoHash *digestTest = parcCryptoHasher_Finalize(digester);
-
- assertTrue(parcCryptoHash_Equals(digestTruth, digestTest),
- "sha512 digest of 128-byte buffer using Update_Buffer does not match");
-
- parcCryptoHasher_Release(&digester);
- parcBuffer_Release(&bb_to_digest);
- parcBufferComposer_Release(&composer);
- parcCryptoHash_Release(&digestTruth);
- parcCryptoHash_Release(&digestTest);
-
- close(fd_buffer);
- close(fd_truth);
-}
-
-LONGBOW_TEST_CASE(Global, parcCryptoHasher_CRC32)
-{
- for (int i = 0; vectors[i].buffer != NULL; i++) {
- PARCCryptoHasher *hasher = parcCryptoHasher_Create(PARCCryptoHashType_CRC32C);
- parcCryptoHasher_Init(hasher);
- parcCryptoHasher_UpdateBytes(hasher, vectors[i].buffer, vectors[i].length);
- PARCCryptoHash *output = parcCryptoHasher_Finalize(hasher);
- PARCBuffer *buffer = parcCryptoHash_GetDigest(output);
- uint32_t testCrc = parcBuffer_GetUint32(buffer);
- parcCryptoHash_Release(&output);
-
- assertTrue(testCrc == vectors[i].crc32c,
- "CRC32C values wrong, index %d got 0x%08x expected 0x%08x\n",
- i, testCrc, vectors[i].crc32c);
- parcCryptoHasher_Release(&hasher);
- }
-}
-
-LONGBOW_TEST_CASE(Global, parcCryptoHasher_CustomHasher)
-{
- PARCCryptoHasher *hasher = parcCryptoHasher_CustomHasher(PARCCryptoHashType_SHA512, functor_sha256);
- assertNotNull(hasher, "Expected to be non null");
-
- parcCryptoHasher_Release(&hasher);
-}
-
-// ================================================
-
-LONGBOW_TEST_FIXTURE(Local)
-{
- LONGBOW_RUN_TEST_CASE(Local, computeCrc32C_Software);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Local)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Local)
-{
- uint32_t outstandingAllocations = parcSafeMemory_ReportAllocation(STDERR_FILENO);
- if (outstandingAllocations != 0) {
- printf("%s leaks memory by %d allocations\n", longBowTestCase_GetName(testCase), outstandingAllocations);
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Local, computeCrc32C_Software)
-{
- for (int i = 0; vectors[i].buffer != NULL; i++) {
- uint32_t testCrc = _crc32c_Init();
- testCrc = _crc32c_UpdateSoftware(testCrc, vectors[i].length, vectors[i].buffer);
- testCrc = _crc32c_Finalize(testCrc);
-
- assertTrue(testCrc == vectors[i].crc32c,
- "CRC32C values wrong, index %d got 0x%08x expected 0x%08x\n",
- i, testCrc, vectors[i].crc32c);
- }
-}
-
-// =======================================================
-
-LONGBOW_TEST_FIXTURE(Performance)
-{
- LONGBOW_RUN_TEST_CASE(Performance, computeCrc32C);
- LONGBOW_RUN_TEST_CASE(Performance, computeCrc32C_Software);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Performance)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Performance)
-{
- uint32_t outstandingAllocations = parcSafeMemory_ReportAllocation(STDERR_FILENO);
- if (outstandingAllocations != 0) {
- printf("%s leaks memory by %d allocations\n", longBowTestCase_GetName(testCase), outstandingAllocations);
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-static double
-runPerformance(int maxreps, uint32_t (*update)(uint32_t crc, size_t len, uint8_t p[len]))
-{
- int reps = maxreps;
- int length = 100;
-
- uint8_t buffer[length];
- for (int i = 0; i < length; i++) {
- buffer[i] = i * 33;
- }
-
- // initial value doesnt really matter
-
- struct timeval t0, t1;
- gettimeofday(&t0, NULL);
- while (--reps) {
- uint32_t crc = _crc32c_Init();
- update(crc, length, buffer);
- crc = _crc32c_Finalize(crc);
- }
-
- gettimeofday(&t1, NULL);
-
- timersub(&t1, &t0, &t1);
-
- double seconds = t1.tv_sec + t1.tv_usec * 1E-6;
- return seconds;
-}
-
-LONGBOW_TEST_CASE(Performance, computeCrc32C)
-{
- int maxreps = 1000000;
- double seconds = runPerformance(maxreps, _crc32c_Update);
- double rate = maxreps / seconds;
-
- printf("Best rate = %.3f for %d iterations\n", rate, maxreps);
-}
-
-LONGBOW_TEST_CASE(Performance, computeCrc32C_Software)
-{
- int maxreps = 1000000;
- double seconds = runPerformance(maxreps, _crc32c_UpdateSoftware);
- double rate = maxreps / seconds;
-
- printf("Best rate = %.3f for %d iterations\n", rate, maxreps);
-}
-
-int
-main(int argc, char *argv[argc])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(parc_CryptoHasher);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_CryptoSuite.c b/libparc/parc/security/test/test_parc_CryptoSuite.c
deleted file mode 100755
index 42007617..00000000
--- a/libparc/parc/security/test/test_parc_CryptoSuite.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-// Include the file(s) containing the functions to be tested.
-// This permits internal static functions to be visible to this Test Framework.
-#include "../parc_CryptoSuite.c"
-
-#include <LongBow/unit-test.h>
-
-LONGBOW_TEST_RUNNER(parc_CryptoSuite)
-{
- // The following Test Fixtures will run their corresponding Test Cases.
- // Test Fixtures are run in the order specified, but all tests should be idempotent.
- // Never rely on the execution order of tests or share state between them.
- LONGBOW_RUN_TEST_FIXTURE(Global);
-}
-
-// The Test Runner calls this function once before any Test Fixtures are run.
-LONGBOW_TEST_RUNNER_SETUP(parc_CryptoSuite)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(parc_CryptoSuite)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Global)
-{
- LONGBOW_RUN_TEST_CASE(Global, parcCryptoSuite_GetCryptoHash);
- LONGBOW_RUN_TEST_CASE(Global, parcCryptoSuite_GetCryptoHash_IllegalValue);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Global, parcCryptoSuite_GetCryptoHash)
-{
- assertTrue(PARCCryptoHashType_SHA256 == parcCryptoSuite_GetCryptoHash(PARCCryptoSuite_RSA_SHA256), "Expected to be true");
- assertTrue(PARCCryptoHashType_SHA256 == parcCryptoSuite_GetCryptoHash(PARCCryptoSuite_DSA_SHA256), "Expected to be true");
- assertTrue(PARCCryptoHashType_SHA512 == parcCryptoSuite_GetCryptoHash(PARCCryptoSuite_RSA_SHA512), "Expected to be true");
- assertTrue(PARCCryptoHashType_SHA256 == parcCryptoSuite_GetCryptoHash(PARCCryptoSuite_HMAC_SHA256), "Expected to be true");
- assertTrue(PARCCryptoHashType_SHA512 == parcCryptoSuite_GetCryptoHash(PARCCryptoSuite_HMAC_SHA512), "Expected to be true");
- assertTrue(PARCCryptoHashType_CRC32C == parcCryptoSuite_GetCryptoHash(PARCCryptoSuite_NULL_CRC32C), "Expected to be true");
- assertTrue(PARCCryptoHashType_SHA256 == parcCryptoSuite_GetCryptoHash(PARCCryptoSuite_ECDSA_SHA256), "Expected to be true");
-}
-
-LONGBOW_TEST_CASE_EXPECTS(Global, parcCryptoSuite_GetCryptoHash_IllegalValue, .event = &LongBowTrapIllegalValue)
-{
- parcCryptoSuite_GetCryptoHash(PARCCryptoSuite_UNKNOWN);
-}
-
-int
-main(int argc, char *argv[argc])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(parc_CryptoSuite);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner, NULL);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_DiffieHellman.c b/libparc/parc/security/test/test_parc_DiffieHellman.c
deleted file mode 100755
index 69bc109b..00000000
--- a/libparc/parc/security/test/test_parc_DiffieHellman.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <config.h>
-#include <stdio.h>
-#include <LongBow/unit-test.h>
-#include <parc/testing/parc_ObjectTesting.h>
-
-#include "../parc_DiffieHellman.c"
-#include <parc/algol/parc_SafeMemory.h>
-#include <parc/security/parc_CryptoHashType.h>
-#include <parc/algol/parc_Buffer.h>
-
-LONGBOW_TEST_RUNNER(parc_DiffieHellman)
-{
- LONGBOW_RUN_TEST_FIXTURE(Global);
-}
-
-LONGBOW_TEST_RUNNER_SETUP(parc_DiffieHellman)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(parc_DiffieHellman)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Global)
-{
- LONGBOW_RUN_TEST_CASE(Global, parcDiffieHellman_AcquireRelease);
- LONGBOW_RUN_TEST_CASE(Global, parcDiffieHellman_Create);
- LONGBOW_RUN_TEST_CASE(Global, parcDiffieHellman_GenerateKeyShare);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Global, parcDiffieHellman_Create)
-{
- PARCDiffieHellman *dh = parcDiffieHellman_Create(PARCDiffieHellmanGroup_Secp521r1);
- assertNotNull(dh, "Expected a non-NULL PARCDiffieHellman instance");
- parcDiffieHellman_Release(&dh);
-}
-
-LONGBOW_TEST_CASE(Global, parcDiffieHellman_AcquireRelease)
-{
- PARCDiffieHellman *dh = parcDiffieHellman_Create(PARCDiffieHellmanGroup_Secp521r1);
- parcObjectTesting_AssertAcquireReleaseContract(parcDiffieHellman_Acquire, dh);
- parcDiffieHellman_Release(&dh);
-}
-
-LONGBOW_TEST_CASE(Global, parcDiffieHellman_GenerateKeyShare)
-{
- PARCDiffieHellman *dh = parcDiffieHellman_Create(PARCDiffieHellmanGroup_Secp521r1);
- PARCDiffieHellmanKeyShare *keyShare = parcDiffieHellman_GenerateKeyShare(dh);
- assertNotNull(keyShare, "Expected a non-NULL PARCDiffieHellmanKeyShare instance");
- parcDiffieHellmanKeyShare_Release(&keyShare);
- parcDiffieHellman_Release(&dh);
-}
-
-int
-main(int argc, char *argv[argc])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(parc_DiffieHellman);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_DiffieHellmanKeyShare.c b/libparc/parc/security/test/test_parc_DiffieHellmanKeyShare.c
deleted file mode 100755
index e8a2eeca..00000000
--- a/libparc/parc/security/test/test_parc_DiffieHellmanKeyShare.c
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <config.h>
-#include <stdio.h>
-#include <LongBow/unit-test.h>
-#include <parc/testing/parc_ObjectTesting.h>
-
-#include "../parc_DiffieHellmanKeyShare.c"
-#include <parc/algol/parc_SafeMemory.h>
-#include <parc/security/parc_CryptoHashType.h>
-#include <parc/algol/parc_Buffer.h>
-
-LONGBOW_TEST_RUNNER(parc_DiffieHellmanKeyShare)
-{
- LONGBOW_RUN_TEST_FIXTURE(Global);
-}
-
-LONGBOW_TEST_RUNNER_SETUP(parc_DiffieHellmanKeyShare)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(parc_DiffieHellmanKeyShare)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Global)
-{
- LONGBOW_RUN_TEST_CASE(Global, parcDiffieHellmanKeyShare_AcquireRelease);
- LONGBOW_RUN_TEST_CASE(Global, parcDiffieHellmanKeyShare_Create);
- LONGBOW_RUN_TEST_CASE(Global, parcDiffieHellmanKeyShare_SerializePublicKey);
- LONGBOW_RUN_TEST_CASE(Global, parcDiffieHellmanKeyShare_SerializeDeserializePublicKey);
- LONGBOW_RUN_TEST_CASE(Global, parcDiffieHellmanKeyShare_DeserializePublicKey_ErrorWrongGroup);
- LONGBOW_RUN_TEST_CASE(Global, parcDiffieHellmanKeyShare_DeserializePublicKey_ErrorInvalidEncoding);
- LONGBOW_RUN_TEST_CASE(Global, parcDiffieHellmanKeyShare_Combine);
- LONGBOW_RUN_TEST_CASE(Global, parcDiffieHellmanKeyShare_Combine_Error_PublicKeyDeserializationFail);
- LONGBOW_RUN_TEST_CASE(Global, _parcDiffieHellmanKeyShare_HashSharedSecret);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Global, parcDiffieHellmanKeyShare_AcquireRelease)
-{
- PARCDiffieHellmanKeyShare *dh = parcDiffieHellmanKeyShare_Create(PARCDiffieHellmanGroup_Secp521r1);
- parcObjectTesting_AssertAcquireReleaseContract(parcDiffieHellmanKeyShare_Acquire, dh);
- parcDiffieHellmanKeyShare_Release(&dh);
-}
-
-LONGBOW_TEST_CASE(Global, parcDiffieHellmanKeyShare_Create)
-{
- PARCDiffieHellmanKeyShare *dh = parcDiffieHellmanKeyShare_Create(PARCDiffieHellmanGroup_Secp521r1);
- assertNotNull(dh, "Expected a non-NULL PARCDiffieHellmanKeyShare instance");
- parcDiffieHellmanKeyShare_Release(&dh);
-}
-
-LONGBOW_TEST_CASE(Global, parcDiffieHellmanKeyShare_SerializePublicKey)
-{
- PARCDiffieHellmanKeyShare *keyShare = parcDiffieHellmanKeyShare_Create(PARCDiffieHellmanGroup_Secp521r1);
- assertNotNull(keyShare, "Expected a non-NULL PARCDiffieHellmanKeyShare instance");
-
- PARCBuffer *publicKey = parcDiffieHellmanKeyShare_SerializePublicKey(keyShare);
- assertNotNull(publicKey, "Expected the public key to be serialized to a non-NULL PARCBuffer");
-
- const size_t sec521r1KeySize = 266;
- assertTrue(parcBuffer_Remaining(publicKey) == sec521r1KeySize, "Expected the public key size to be %zu, got %zu", sec521r1KeySize, parcBuffer_Remaining(publicKey));
-
- parcBuffer_Release(&publicKey);
- parcDiffieHellmanKeyShare_Release(&keyShare);
-}
-
-LONGBOW_TEST_CASE(Global, parcDiffieHellmanKeyShare_SerializeDeserializePublicKey)
-{
- PARCDiffieHellmanKeyShare *keyShare = parcDiffieHellmanKeyShare_Create(PARCDiffieHellmanGroup_Secp521r1);
- assertNotNull(keyShare, "Expected a non-NULL PARCDiffieHellmanKeyShare instance");
-
- PARCBuffer *publicKey = parcDiffieHellmanKeyShare_SerializePublicKey(keyShare);
- assertNotNull(publicKey, "Expected the public key to be serialized to a non-NULL PARCBuffer");
-
- const size_t sec521r1KeySize = 266;
- assertTrue(parcBuffer_Remaining(publicKey) == sec521r1KeySize, "Expected the public key size to be %zu, got %zu", sec521r1KeySize, parcBuffer_Remaining(publicKey));
-
- // Deserialize the public key to get the OpenSSL EVP_PKEY type
- EVP_PKEY *rawPublicKey = _parcDiffieHellman_DeserializePublicKeyShare(keyShare, publicKey);
- assertNotNull(rawPublicKey, "Expected the raw public key to be deserialized");
-
- // Extract the public portions of the private key share and public key share
- EC_KEY *publicEcKey = EVP_PKEY_get1_EC_KEY(rawPublicKey);
- const EC_POINT *publicPoint = EC_KEY_get0_public_key(publicEcKey);
-
- EC_KEY *privateEcKey = EVP_PKEY_get1_EC_KEY(keyShare->privateKey);
- const EC_POINT *privatePoint = EC_KEY_get0_public_key(privateEcKey);
-
- // Compare the public portions of the key shares
- const EC_GROUP *group = EC_KEY_get0_group(publicEcKey);
- BN_CTX *bigNumberContext = BN_CTX_new();
- int equalResult = EC_POINT_cmp(group, publicPoint, privatePoint, bigNumberContext);
- assertTrue(equalResult == 0, "Expected the two public points to be equal.");
-
- BN_CTX_free(bigNumberContext);
- EVP_PKEY_free(rawPublicKey);
- parcBuffer_Release(&publicKey);
- parcDiffieHellmanKeyShare_Release(&keyShare);
-}
-
-LONGBOW_TEST_CASE(Global, parcDiffieHellmanKeyShare_DeserializePublicKey_ErrorWrongGroup)
-{
- PARCDiffieHellmanKeyShare *keyShare = parcDiffieHellmanKeyShare_Create(PARCDiffieHellmanGroup_Secp521r1);
- assertNotNull(keyShare, "Expected a non-NULL PARCDiffieHellmanKeyShare instance");
-
- PARCBuffer *publicKey = parcDiffieHellmanKeyShare_SerializePublicKey(keyShare);
- assertNotNull(publicKey, "Expected the public key to be serialized to a non-NULL PARCBuffer");
-
- PARCDiffieHellmanKeyShare *alternateKeyShare = parcDiffieHellmanKeyShare_Create(PARCDiffieHellmanGroup_Prime256v1);
-
- // Deserialize the public key with a different group and hit the failure
- EVP_PKEY *rawPublicKey = _parcDiffieHellman_DeserializePublicKeyShare(alternateKeyShare, publicKey);
- assertNull(rawPublicKey, "Expected the raw public key to not be deserialized");
-
- parcBuffer_Release(&publicKey);
- parcDiffieHellmanKeyShare_Release(&keyShare);
- parcDiffieHellmanKeyShare_Release(&alternateKeyShare);
-}
-
-LONGBOW_TEST_CASE(Global, parcDiffieHellmanKeyShare_DeserializePublicKey_ErrorInvalidEncoding)
-{
- PARCDiffieHellmanKeyShare *keyShare = parcDiffieHellmanKeyShare_Create(PARCDiffieHellmanGroup_Secp521r1);
- assertNotNull(keyShare, "Expected a non-NULL PARCDiffieHellmanKeyShare instance");
-
- // Deserialize the public key with a different group
- PARCBuffer *publicKey = parcBuffer_Allocate(32);
- EVP_PKEY *rawPublicKey = _parcDiffieHellman_DeserializePublicKeyShare(keyShare, publicKey);
- assertNull(rawPublicKey, "Expected the raw public key to not be deserialized");
-
- parcBuffer_Release(&publicKey);
- parcDiffieHellmanKeyShare_Release(&keyShare);
-}
-
-LONGBOW_TEST_CASE(Global, parcDiffieHellmanKeyShare_Combine)
-{
- PARCDiffieHellmanKeyShare *keyShare = parcDiffieHellmanKeyShare_Create(PARCDiffieHellmanGroup_Secp521r1);
- assertNotNull(keyShare, "Expected a non-NULL PARCDiffieHellmanKeyShare instance");
-
- PARCBuffer *publicKey = parcDiffieHellmanKeyShare_SerializePublicKey(keyShare);
- assertNotNull(publicKey, "Expected the public key to be serialized to a non-NULL PARCBuffer");
-
- PARCBuffer *sharedSecret = parcDiffieHellmanKeyShare_Combine(keyShare, publicKey);
- assertNotNull(sharedSecret, "Expected the shared secret to be non-NULL");
-
- const size_t secretSize = 32; // = 256 / 8 bytes
- assertTrue(parcBuffer_Remaining(sharedSecret) == secretSize, "invalid size");
-
- parcBuffer_Release(&sharedSecret);
- parcBuffer_Release(&publicKey);
- parcDiffieHellmanKeyShare_Release(&keyShare);
-}
-
-LONGBOW_TEST_CASE(Global, parcDiffieHellmanKeyShare_Combine_Error_PublicKeyDeserializationFail)
-{
- PARCDiffieHellmanKeyShare *keyShare = parcDiffieHellmanKeyShare_Create(PARCDiffieHellmanGroup_Secp521r1);
- assertNotNull(keyShare, "Expected a non-NULL PARCDiffieHellmanKeyShare instance");
-
- PARCBuffer *publicKey = parcBuffer_Allocate(32);
- PARCBuffer *sharedSecret = parcDiffieHellmanKeyShare_Combine(keyShare, publicKey);
- assertNull(sharedSecret, "Expected the shared secret to be non-NULL");
-
- parcBuffer_Release(&publicKey);
- parcDiffieHellmanKeyShare_Release(&keyShare);
-}
-
-LONGBOW_TEST_CASE(Global, _parcDiffieHellmanKeyShare_HashSharedSecret)
-{
- PARCBuffer *input = parcBuffer_Allocate(1024);
- PARCBuffer *digestValue = _parcDiffieHellmanKeyShare_HashSharedSecret(input);
- size_t digestLength = parcBuffer_Remaining(digestValue);
- size_t expectedLength = 32; // 256 bits for PARCCryptoHashType_SHA256
- assertTrue(digestLength == 32, "Expected a %zu byte digest, got %zu", expectedLength, digestLength);
-
- PARCCryptoHasher *hasher = parcCryptoHasher_Create(PARCCryptoHashType_SHA256);
- parcCryptoHasher_Init(hasher);
- parcCryptoHasher_UpdateBuffer(hasher, input);
- PARCCryptoHash *digest = parcCryptoHasher_Finalize(hasher);
-
- PARCBuffer *computedDigest = parcBuffer_Acquire(parcCryptoHash_GetDigest(digest));
-
- parcCryptoHash_Release(&digest);
- parcCryptoHasher_Release(&hasher);
-
- assertTrue(parcBuffer_Equals(digestValue, computedDigest), "Expected the secret input to be hashed correctly.");
-
- parcBuffer_Release(&input);
- parcBuffer_Release(&digestValue);
- parcBuffer_Release(&computedDigest);
-}
-
-int
-main(int argc, char *argv[argc])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(parc_DiffieHellmanKeyShare);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_Identity.c b/libparc/parc/security/test/test_parc_Identity.c
deleted file mode 100644
index 3208efcb..00000000
--- a/libparc/parc/security/test/test_parc_Identity.c
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * @header <#Headline Name#>
- * @abstract <#Abstract#>
- * @discussion
- * <#Discussion#>
- *
- */
-// Include the file(s) containing the functions to be tested.
-// This permits internal static functions to be visible to this Test Framework.
-#include "../parc_Identity.c"
-#include "../parc_IdentityFile.h"
-#include "../parc_Security.h"
-
-#include <stdio.h>
-#include <fcntl.h>
-#include <inttypes.h>
-
-#include <LongBow/unit-test.h>
-
-#include <parc/algol/parc_SafeMemory.h>
-#include <parc/testing/parc_ObjectTesting.h>
-
-LONGBOW_TEST_RUNNER(test_parc_Identity)
-{
- // The following Test Fixtures will run their corresponding Test Cases.
- // Test Fixtures are run in the order specified, but all tests should be idempotent.
- // Never rely on the execution order of tests or share state between them.
- LONGBOW_RUN_TEST_FIXTURE(Global);
-}
-
-// The Test Runner calls this function once before any Test Fixtures are run.
-LONGBOW_TEST_RUNNER_SETUP(test_parc_Identity)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(test_parc_Identity)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Global)
-{
- LONGBOW_RUN_TEST_CASE(Global, parcIdentity_Create);
- LONGBOW_RUN_TEST_CASE(Global, parcIdentity_Acquire);
- LONGBOW_RUN_TEST_CASE(Global, parcIdentity_GetFileName);
- LONGBOW_RUN_TEST_CASE(Global, parcIdentity_GetPassWord);
- LONGBOW_RUN_TEST_CASE(Global, parcIdentity_CreateSigner);
- LONGBOW_RUN_TEST_CASE(Global, parcIdentity_Equals);
- LONGBOW_RUN_TEST_CASE(Global, parcIdentity_Display);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- uint32_t outstandingAllocations = parcSafeMemory_ReportAllocation(STDERR_FILENO);
- if (outstandingAllocations != 0) {
- printf("Tests leak memory by %d allocations\n", outstandingAllocations);
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Global, parcIdentity_Create)
-{
- const char *keystoreName = "test_rsa.p12";
- const char *keystorePassword = "blueberry";
-
- PARCIdentityFile *identityFile = parcIdentityFile_Create(keystoreName, keystorePassword);
- assertNotNull(identityFile, "Expected non-null");
-
- PARCIdentity *identity = parcIdentity_Create(identityFile, PARCIdentityFileAsPARCIdentity);
- assertNotNull(identity, "Expected non-null");
- parcIdentityFile_Release(&identityFile);
-
- parcIdentity_Release(&identity);
-}
-
-LONGBOW_TEST_CASE(Global, parcIdentity_Acquire)
-{
- const char *keystoreName = "test_rsa.p12";
- const char *keystorePassword = "blueberry";
-
- PARCIdentityFile *identityFile = parcIdentityFile_Create(keystoreName, keystorePassword);
- assertNotNull(identityFile, "Expected non-null");
-
- PARCIdentity *identity = parcIdentity_Create(identityFile, PARCIdentityFileAsPARCIdentity);
- assertNotNull(identity, "Expected non-null");
-
- parcObjectTesting_AssertAcquireReleaseContract(parcIdentity_Acquire, identity);
-
- parcIdentityFile_Release(&identityFile);
- parcIdentity_Release(&identity);
-}
-
-LONGBOW_TEST_CASE(Global, parcIdentity_GetFileName)
-{
- const char *keystoreName = "test_rsa.p12";
- const char *keystorePassword = "blueberry";
-
- PARCIdentityFile *identityFile = parcIdentityFile_Create(keystoreName, keystorePassword);
- assertNotNull(identityFile, "Expected non-null");
-
- PARCIdentity *identity = parcIdentity_Create(identityFile, PARCIdentityFileAsPARCIdentity);
- assertNotNull(identity, "Expected non-null");
-
- assertEqualStrings(keystoreName, parcIdentity_GetFileName(identity));
-
- parcIdentityFile_Release(&identityFile);
- parcIdentity_Release(&identity);
-}
-
-LONGBOW_TEST_CASE(Global, parcIdentity_GetPassWord)
-{
- const char *keystoreName = "test_rsa.p12";
- const char *keystorePassword = "blueberry";
-
- PARCIdentityFile *identityFile = parcIdentityFile_Create(keystoreName, keystorePassword);
- assertNotNull(identityFile, "Expected non-null");
-
- PARCIdentity *identity = parcIdentity_Create(identityFile, PARCIdentityFileAsPARCIdentity);
- assertNotNull(identity, "Expected non-null");
-
- assertEqualStrings(keystorePassword, parcIdentity_GetPassWord(identity));
-
- parcIdentityFile_Release(&identityFile);
- parcIdentity_Release(&identity);
-}
-
-LONGBOW_TEST_CASE(Global, parcIdentity_CreateSigner)
-{
- parcSecurity_Init();
-
- const char *keystoreName = "test_rsa.p12";
- const char *keystorePassword = "blueberry";
-
- PARCIdentityFile *identityFile = parcIdentityFile_Create(keystoreName, keystorePassword);
- assertNotNull(identityFile, "Expected non-null");
-
- PARCIdentity *identity = parcIdentity_Create(identityFile, PARCIdentityFileAsPARCIdentity);
- assertNotNull(identity, "Expected non-null");
-
- assertEqualStrings(keystorePassword, parcIdentity_GetPassWord(identity));
-
- PARCSigner *signer = parcIdentity_CreateSigner(identity, PARCCryptoSuite_RSA_SHA256);
-
- assertNotNull(signer, "Expected non-null");
-
- parcIdentityFile_Release(&identityFile);
- parcIdentity_Release(&identity);
- parcSigner_Release(&signer);
-
- parcSecurity_Fini();
-}
-
-LONGBOW_TEST_CASE(Global, parcIdentity_Equals)
-{
- const char *keystoreName = "test_rsa.p12";
- const char *keystorePassword = "blueberry";
-
- PARCIdentityFile *identityFileX = parcIdentityFile_Create(keystoreName, keystorePassword);
- PARCIdentity *x = parcIdentity_Create(identityFileX, PARCIdentityFileAsPARCIdentity);
- PARCIdentityFile *identityFileY = parcIdentityFile_Create(keystoreName, keystorePassword);
- PARCIdentity *y = parcIdentity_Create(identityFileY, PARCIdentityFileAsPARCIdentity);
- PARCIdentityFile *identityFileZ = parcIdentityFile_Create(keystoreName, keystorePassword);
- PARCIdentity *z = parcIdentity_Create(identityFileZ, PARCIdentityFileAsPARCIdentity);
-
- PARCIdentityFile *identityFile1 = parcIdentityFile_Create("foo", keystorePassword);
- PARCIdentityFile *identityFile2 = parcIdentityFile_Create(keystoreName, "bar");
- PARCIdentity *u1 = parcIdentity_Create(identityFile1, PARCIdentityFileAsPARCIdentity);
- PARCIdentity *u2 = parcIdentity_Create(identityFile2, PARCIdentityFileAsPARCIdentity);
-
- parcObjectTesting_AssertEqualsFunction(parcIdentity_Equals, x, y, z, u1, u2);
-
- parcIdentityFile_Release(&identityFileX);
- parcIdentityFile_Release(&identityFileY);
- parcIdentityFile_Release(&identityFileZ);
- parcIdentityFile_Release(&identityFile1);
- parcIdentityFile_Release(&identityFile2);
-
- parcIdentity_Release(&x);
- parcIdentity_Release(&y);
- parcIdentity_Release(&z);
- parcIdentity_Release(&u1);
- parcIdentity_Release(&u2);
-}
-
-LONGBOW_TEST_CASE(Global, parcIdentity_Display)
-{
- const char *keystoreName = "test_rsa.p12";
- const char *keystorePassword = "blueberry";
-
- PARCIdentityFile *identityFile = parcIdentityFile_Create(keystoreName, keystorePassword);
- assertNotNull(identityFile, "Expected non-null");
-
- PARCIdentity *identity = parcIdentity_Create(identityFile, PARCIdentityFileAsPARCIdentity);
- assertNotNull(identity, "Expected non-null");
-
- parcIdentity_Display(identity, 0);
-
- parcIdentityFile_Release(&identityFile);
- parcIdentity_Release(&identity);
-}
-
-int
-main(int argc, char *argv[])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(test_parc_Identity);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner, NULL);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_IdentityFile.c b/libparc/parc/security/test/test_parc_IdentityFile.c
deleted file mode 100644
index 5bcc5570..00000000
--- a/libparc/parc/security/test/test_parc_IdentityFile.c
+++ /dev/null
@@ -1,242 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-// Include the file(s) containing the functions to be tested.
-// This permits internal static functions to be visible to this Test Framework.
-#include "../parc_IdentityFile.c"
-#include "../parc_Security.h"
-
-#include <stdio.h>
-#include <fcntl.h>
-#include <inttypes.h>
-
-#include <LongBow/unit-test.h>
-
-#include <parc/algol/parc_SafeMemory.h>
-#include <parc/testing/parc_ObjectTesting.h>
-
-LONGBOW_TEST_RUNNER(parc_IdentityFile)
-{
- // The following Test Fixtures will run their corresponding Test Cases.
- // Test Fixtures are run in the order specified, but all tests should be idempotent.
- // Never rely on the execution order of tests or share state between them.
- LONGBOW_RUN_TEST_FIXTURE(Global);
-}
-
-// The Test Runner calls this function once before any Test Fixtures are run.
-LONGBOW_TEST_RUNNER_SETUP(parc_IdentityFile)
-{
- parcMemory_SetInterface(&PARCSafeMemoryAsPARCMemory);
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(parc_IdentityFile)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Global)
-{
- LONGBOW_RUN_TEST_CASE(Global, parcIdentityFile_Create);
- LONGBOW_RUN_TEST_CASE(Global, parcIdentityFile_Release);
- LONGBOW_RUN_TEST_CASE(Global, parcIdentityFile_Acquire);
- LONGBOW_RUN_TEST_CASE(Global, parcIdentityFile_Equals);
- LONGBOW_RUN_TEST_CASE(Global, parcIdentityFile_GetFileName);
- LONGBOW_RUN_TEST_CASE(Global, parcIdentityFile_GetPassWord);
- LONGBOW_RUN_TEST_CASE(Global, parcIdentityFile_CreateSigner);
-// LONGBOW_RUN_TEST_CASE(Global, parcIdentityFile_Display);
-// LONGBOW_RUN_TEST_CASE(Global, parcIdentityFile_Exists_True);
-// LONGBOW_RUN_TEST_CASE(Global, parcIdentityFile_Exists_False);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Global, parcIdentityFile_Acquire)
-{
- const char *keystoreName = "test_rsa.p12";
- const char *keystorePassword = "blueberry";
-
- PARCIdentityFile *identityFile = parcIdentityFile_Create(keystoreName, keystorePassword);
-
- assertNotNull(identityFile, "Expected non-null");
-
- parcObjectTesting_AssertAcquireReleaseContract(parcIdentityFile_Acquire, identityFile);
-
- parcIdentityFile_Release(&identityFile);
-}
-
-LONGBOW_TEST_CASE(Global, parcIdentityFile_Create)
-{
- const char *keystoreName = "test_rsa.p12";
- const char *keystorePassword = "blueberry";
-
- PARCIdentityFile *identityFile = parcIdentityFile_Create(keystoreName, keystorePassword);
-
- assertNotNull(identityFile, "Expected non-null");
-
- parcIdentityFile_Release(&identityFile);
-}
-
-LONGBOW_TEST_CASE(Global, parcIdentityFile_GetFileName)
-{
- const char *keystoreName = "test_rsa.p12";
- const char *keystorePassword = "blueberry";
-
- PARCIdentityFile *identityFile = parcIdentityFile_Create(keystoreName, keystorePassword);
-
- assertNotNull(identityFile, "Expected non-null");
-
- assertEqualStrings(keystoreName, parcIdentityFile_GetFileName(identityFile));
-
- parcIdentityFile_Release(&identityFile);
-}
-
-LONGBOW_TEST_CASE(Global, parcIdentityFile_GetPassWord)
-{
- const char *keystoreName = "test_rsa.p12";
- const char *keystorePassword = "blueberry";
-
- PARCIdentityFile *identityFile = parcIdentityFile_Create(keystoreName, keystorePassword);
-
- assertNotNull(identityFile, "Expected non-null");
-
- assertEqualStrings(keystorePassword, parcIdentityFile_GetPassWord(identityFile));
-
- parcIdentityFile_Release(&identityFile);
-}
-
-LONGBOW_TEST_CASE(Global, parcIdentityFile_Exists_True)
-{
- const char *keystoreName = "test_rsa.p12";
- const char *keystorePassword = "blueberry";
-
- PARCIdentityFile *identityFile = parcIdentityFile_Create(keystoreName, keystorePassword);
-
- bool actual = parcIdentityFile_Exists(identityFile);
-
- assertTrue(actual, "Expected %s to exist.", parcIdentityFile_GetFileName(identityFile));
-
- parcIdentityFile_Release(&identityFile);
-}
-
-LONGBOW_TEST_CASE(Global, parcIdentityFile_Exists_False)
-{
- const char *keystoreName = "/dev/notgoingtoexist";
- const char *keystorePassword = "blueberry";
-
- PARCIdentityFile *identityFile = parcIdentityFile_Create(keystoreName, keystorePassword);
-
- bool actual = parcIdentityFile_Exists(identityFile);
-
- assertFalse(actual, "Expected %s to not exist.", parcIdentityFile_GetFileName(identityFile));
-
- parcIdentityFile_Release(&identityFile);
-}
-
-LONGBOW_TEST_CASE(Global, parcIdentityFile_CreateSigner)
-{
- parcSecurity_Init();
-
- const char *keystoreName = "test_rsa.p12";
- const char *keystorePassword = "blueberry";
-
- PARCIdentityFile *identityFile = parcIdentityFile_Create(keystoreName, keystorePassword);
-
- assertNotNull(identityFile, "Expected non-null");
-
- char cwd[1024];
- if (getcwd(cwd, sizeof(cwd)) != NULL) {
- fprintf(stdout, "Current working dir: %s\n", cwd);
- } else {
- perror("getcwd() error");
- }
- PARCSigner *signer = parcIdentityFile_CreateSigner(identityFile, PARCCryptoSuite_RSA_SHA256);
-
- assertNotNull(signer, "Expected non-null");
-
- parcIdentityFile_Release(&identityFile);
- parcSigner_Release(&signer);
-
- parcSecurity_Fini();
-}
-
-LONGBOW_TEST_CASE(Global, parcIdentityFile_Release)
-{
- const char *keystoreName = "test_rsa.p12";
- const char *keystorePassword = "blueberry";
-
- PARCIdentityFile *identityFile = parcIdentityFile_Create(keystoreName, keystorePassword);
-
- assertNotNull(identityFile, "Expected non-null");
-
- parcIdentityFile_Release(&identityFile);
- assertNull(identityFile, "Identity File was not nulled out after Release()");
-}
-
-LONGBOW_TEST_CASE(Global, parcIdentityFile_Equals)
-{
- const char *keystoreName = "test_rsa.p12";
- const char *keystorePassword = "blueberry";
-
- PARCIdentityFile *x = parcIdentityFile_Create(keystoreName, keystorePassword);
- PARCIdentityFile *y = parcIdentityFile_Create(keystoreName, keystorePassword);
- PARCIdentityFile *z = parcIdentityFile_Create(keystoreName, keystorePassword);
- PARCIdentityFile *u1 = parcIdentityFile_Create("foo", keystorePassword);
- PARCIdentityFile *u2 = parcIdentityFile_Create(keystoreName, "bar");
-
- parcObjectTesting_AssertEqualsFunction(parcIdentityFile_Equals, x, y, z, u1, u2);
-
- parcIdentityFile_Release(&x);
- parcIdentityFile_Release(&y);
- parcIdentityFile_Release(&z);
- parcIdentityFile_Release(&u1);
- parcIdentityFile_Release(&u2);
-}
-
-LONGBOW_TEST_CASE(Global, parcIdentityFile_Display)
-{
- const char *keystoreName = "test_rsa.p12";
- const char *keystorePassword = "blueberry";
-
- PARCIdentityFile *identityFile = parcIdentityFile_Create(keystoreName, keystorePassword);
- assertNotNull(identityFile, "Expected non-null");
-
- parcIdentityFile_Display(identityFile, 0);
-
- parcIdentityFile_Release(&identityFile);
-}
-
-int
-main(int argc, char *argv[argc])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(parc_IdentityFile);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner, NULL);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_InMemoryVerifier.c b/libparc/parc/security/test/test_parc_InMemoryVerifier.c
deleted file mode 100755
index 81baebc7..00000000
--- a/libparc/parc/security/test/test_parc_InMemoryVerifier.c
+++ /dev/null
@@ -1,417 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-// Include the file(s) containing the functions to be tested.
-// This permits internal static functions to be visible to this Test Framework.
-#include "../parc_InMemoryVerifier.c"
-
-#include <parc/algol/parc_SafeMemory.h>
-#include <parc/algol/parc_BufferComposer.h>
-#include <parc/security/parc_Security.h>
-
-#include <parc/security/parc_Pkcs12KeyStore.h>
-#include <parc/security/parc_KeyStore.h>
-#include <parc/security/parc_PublicKeySigner.h>
-#include <parc/security/parc_Signer.h>
-
-#include <fcntl.h>
-#include <LongBow/unit-test.h>
-
-LONGBOW_TEST_RUNNER(parc_InMemoryVerifier)
-{
- // The following Test Fixtures will run their corresponding Test Cases.
- // Test Fixtures are run in the order specified, but all tests should be idempotent.
- // Never rely on the execution order of tests or share state between them.
- LONGBOW_RUN_TEST_FIXTURE(Global);
- LONGBOW_RUN_TEST_FIXTURE(Local);
-}
-
-// The Test Runner calls this function once before any Test Fixtures are run.
-LONGBOW_TEST_RUNNER_SETUP(parc_InMemoryVerifier)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(parc_InMemoryVerifier)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Global)
-{
- parcSecurity_Init();
- LONGBOW_RUN_TEST_CASE(Global, parcInMemoryVerifier_Create);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- parcSecurity_Fini();
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Global, parcInMemoryVerifier_Create)
-{
- PARCInMemoryVerifier *verifier = parcInMemoryVerifier_Create();
-
- assertNotNull(verifier, "Got null result from parcInMemoryVerifier_Create");
-
- parcInMemoryVerifier_Release(&verifier);
-}
-
-// ===========
-// We use the known keys on disk for these tests
-
-typedef struct test_data {
- PARCSigner *signer;
- PARCInMemoryVerifier *inMemoryInterface;
-} TestData;
-
-LONGBOW_TEST_FIXTURE(Local)
-{
- LONGBOW_RUN_TEST_CASE(Local, parcInMemoryVerifier_AddKeyId);
- LONGBOW_RUN_TEST_CASE(Local, parcInMemoryVerifier_GetCryptoHasher);
- LONGBOW_RUN_TEST_CASE(Local, parcInMemoryVerifier_AllowedCryptoSuite_RSA);
-
- LONGBOW_RUN_TEST_CASE(Local, parcInMemoryVerifier_RemoveKeyId);
- LONGBOW_RUN_TEST_CASE(Local, parcInMemoryVerifier_VerifySignature);
- LONGBOW_RUN_TEST_CASE(Local, parcInMemoryVerifier_VerifySignature_BadHashAlg);
- LONGBOW_RUN_TEST_CASE(Local, parcInMemoryVerifier_VerifySignature_BadSigAlg);
- LONGBOW_RUN_TEST_CASE(Local, parcInMemoryVerifier_VerifySignature_BadHash);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Local)
-{
- parcMemory_SetInterface(&PARCSafeMemoryAsPARCMemory);
- parcSecurity_Init();
-
- TestData *data = parcMemory_AllocateAndClear(sizeof(TestData));
- assertNotNull(data, "parcMemory_AllocateAndClear(%zu) returned NULL", sizeof(TestData));
-
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open("test_rsa.p12", "blueberry", PARCCryptoHashType_SHA256);
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCPublicKeySigner *signer = parcPublicKeySigner_Create(keyStore, PARCCryptoSuite_RSA_SHA256);
- parcKeyStore_Release(&keyStore);
-
- data->signer = parcSigner_Create(signer, PARCPublicKeySignerAsSigner);
- parcPublicKeySigner_Release(&signer);
- assertNotNull(data->signer, "Got null result from opening openssl pkcs12 file");
-
- data->inMemoryInterface = parcInMemoryVerifier_Create();
-
- longBowTestCase_SetClipBoardData(testCase, data);
-
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Local)
-{
- TestData *data = longBowTestCase_GetClipBoardData(testCase);
-
- parcInMemoryVerifier_Release(&data->inMemoryInterface);
- parcSigner_Release(&data->signer);
- parcMemory_Deallocate((void **) &data);
-
- parcSecurity_Fini();
-
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Local, parcInMemoryVerifier_GetCryptoHasher)
-{
- TestData *data = longBowTestCase_GetClipBoardData(testCase);
-
- PARCKey *key = parcSigner_CreatePublicKey(data->signer);
- _parcInMemoryVerifier_AddKey(data->inMemoryInterface, key);
-
- PARCCryptoHasher *hasher = _parcInMemoryVerifier_GetCryptoHasher(data->inMemoryInterface, parcKey_GetKeyId(key), PARCCryptoHashType_SHA256);
- parcKey_Release(&key);
- assertNotNull(hasher, "Got a null hasher");
-}
-
-LONGBOW_TEST_CASE(Local, parcInMemoryVerifier_AddKeyId)
-{
- TestData *data = longBowTestCase_GetClipBoardData(testCase);
-
- // create the key with copies of the byte buffers
- PARCKey *key = parcSigner_CreatePublicKey(data->signer);
-
- _parcInMemoryVerifier_AddKey(data->inMemoryInterface, key);
-
- // now do something that uses the key
- bool success = _parcInMemoryVerifier_AllowedCryptoSuite(data->inMemoryInterface, parcKey_GetKeyId(key), PARCCryptoSuite_RSA_SHA256);
- parcKey_Release(&key);
- assertTrue(success, "Should have allowed PARCCryptoSuite_RSA_SHA256 for an RSA keystore");
-}
-
-LONGBOW_TEST_CASE(Local, parcInMemoryVerifier_AllowedCryptoSuite_RSA)
-{
- TestData *data = longBowTestCase_GetClipBoardData(testCase);
-
- PARCKey *key = parcSigner_CreatePublicKey(data->signer);
- _parcInMemoryVerifier_AddKey(data->inMemoryInterface, key);
-
- // now do something that uses the key
- bool success = _parcInMemoryVerifier_AllowedCryptoSuite(data->inMemoryInterface, parcKey_GetKeyId(key), PARCCryptoSuite_RSA_SHA256);
- parcKey_Release(&key);
- assertTrue(success, "Should have allowed PARCCryptoSuite_RSA_SHA256 for an RSA keystore");
-}
-
-LONGBOW_TEST_CASE(Local, parcInMemoryVerifier_RemoveKeyId)
-{
- testUnimplemented("This test is unimplemented");
-}
-
-/**
- * Verify the openssl signature using the public key and our locally computed hash
- */
-LONGBOW_TEST_CASE(Local, parcInMemoryVerifier_VerifySignature)
-{
- TestData *data = longBowTestCase_GetClipBoardData(testCase);
-
- // Setup the key in the verifier
-
- PARCKey *key = parcSigner_CreatePublicKey(data->signer);
-
- _parcInMemoryVerifier_AddKey(data->inMemoryInterface, key);
-
- // read the buffer to sign
- int fd = open("test_random_bytes", O_RDONLY);
- uint8_t buffer_to_sign[2048];
- ssize_t read_bytes = read(fd, buffer_to_sign, 2048);
- close(fd);
-
- // Digest it
- PARCCryptoHasher *digester = _parcInMemoryVerifier_GetCryptoHasher(data->inMemoryInterface, parcKey_GetKeyId(key), PARCCryptoHashType_SHA256);
- assertNotNull(digester, "got null cryptohasher from inmemory verifier");
-
- parcCryptoHasher_Init(digester);
- parcCryptoHasher_UpdateBytes(digester, buffer_to_sign, read_bytes);
- PARCCryptoHash *localHash = parcCryptoHasher_Finalize(digester);
-
- // now read the "true" signature
- uint8_t scratch_buffer[1024];
- fd = open("test_random_bytes.sig", O_RDONLY);
- read_bytes = read(fd, scratch_buffer, 1024);
- assertTrue(read_bytes == 128,
- "read incorrect size signature from disk: %zu", read_bytes);
- close(fd);
-
- PARCBufferComposer *composer = parcBufferComposer_Create();
- parcBufferComposer_PutArray(composer, scratch_buffer, read_bytes);
- PARCBuffer *bb_sig = parcBufferComposer_ProduceBuffer(composer);
-
- PARCSignature *signatureToVerify = parcSignature_Create(PARCSigningAlgorithm_RSA, PARCCryptoHashType_SHA256, bb_sig);
- parcBuffer_Release(&bb_sig);
- parcBufferComposer_Release(&composer);
-
- bool success = _parcInMemoryVerifier_VerifyDigest(data->inMemoryInterface, parcKey_GetKeyId(key), localHash, PARCCryptoSuite_RSA_SHA256, signatureToVerify);
-
- parcSignature_Release(&signatureToVerify);
- parcCryptoHash_Release(&localHash);
- parcKey_Release(&key);
-
- assertTrue(success, "Could not validate signature");
-}
-
-/**
- * Same as the "good" code above, but calculate the hash with the wrong hash algorithm. This is
- * what would happen if the signer and the verifier did not use the same hash algorithym.
- */
-LONGBOW_TEST_CASE(Local, parcInMemoryVerifier_VerifySignature_BadHashAlg)
-{
- TestData *data = longBowTestCase_GetClipBoardData(testCase);
- bool success;
-
- // Setup the key in the verifier
-
- PARCKey *key = parcSigner_CreatePublicKey(data->signer);
-
- _parcInMemoryVerifier_AddKey(data->inMemoryInterface, key);
-
- // read the buffer to sign
- int fd = open("test_random_bytes", O_RDONLY);
- uint8_t buffer_to_sign[2048];
- ssize_t read_bytes = read(fd, buffer_to_sign, 2048);
- close(fd);
-
- // Digest it WITH THE WRONG HASH
- PARCCryptoHasher *digester = _parcInMemoryVerifier_GetCryptoHasher(data->inMemoryInterface, parcKey_GetKeyId(key), PARCCryptoHashType_SHA512);
- assertNotNull(digester, "got null cryptohasher from inmemory verifier");
-
- parcCryptoHasher_Init(digester);
- parcCryptoHasher_UpdateBytes(digester, buffer_to_sign, read_bytes);
- PARCCryptoHash *localHash = parcCryptoHasher_Finalize(digester);
-
- // now read the "true" signature
- uint8_t scratch_buffer[1024];
- fd = open("test_random_bytes.sig", O_RDONLY);
- read_bytes = read(fd, scratch_buffer, 1024);
- assertTrue(read_bytes == 128, "read incorrect size signature from disk: %zu", read_bytes);
- close(fd);
-
- PARCBufferComposer *composer = parcBufferComposer_Create();
- parcBufferComposer_PutArray(composer, scratch_buffer, read_bytes);
- PARCBuffer *bb_sig = parcBufferComposer_ProduceBuffer(composer);
-
- PARCSignature *signatureToVerify = parcSignature_Create(PARCSigningAlgorithm_RSA,
- PARCCryptoHashType_SHA256,
- bb_sig);
- parcBuffer_Release(&bb_sig);
- parcBufferComposer_Release(&composer);
-
- success = _parcInMemoryVerifier_VerifyDigest(data->inMemoryInterface, parcKey_GetKeyId(key), localHash, PARCCryptoSuite_RSA_SHA256, signatureToVerify);
-
- parcSignature_Release(&signatureToVerify);
- parcCryptoHash_Release(&localHash);
- parcKey_Release(&key);
-
- assertFalse(success, "Signatures should not have verified! Wrong hash types!");
-}
-
-
-/**
- * Same as the "good" code, but tell the verifier the wrong key type. This is what would
- * happen if the verifier somehow picked the wrong cryptosuite.
- */
-LONGBOW_TEST_CASE(Local, parcInMemoryVerifier_VerifySignature_BadSigAlg)
-{
- TestData *data = longBowTestCase_GetClipBoardData(testCase);
-
- // Setup the key in the verifier
- PARCKey *key = parcSigner_CreatePublicKey(data->signer);
-
- _parcInMemoryVerifier_AddKey(data->inMemoryInterface, key);
-
- // read the buffer to sign
- int fd = open("test_random_bytes", O_RDONLY);
- uint8_t buffer_to_sign[2048];
- ssize_t read_bytes = read(fd, buffer_to_sign, 2048);
- close(fd);
-
- // Digest it
- PARCCryptoHasher *digester = _parcInMemoryVerifier_GetCryptoHasher(data->inMemoryInterface, parcKey_GetKeyId(key), PARCCryptoHashType_SHA256);
- assertNotNull(digester, "got null cryptohasher from inmemory verifier");
-
- parcCryptoHasher_Init(digester);
- parcCryptoHasher_UpdateBytes(digester, buffer_to_sign, read_bytes);
- PARCCryptoHash *localHash = parcCryptoHasher_Finalize(digester);
-
- // now read the "true" signature
- uint8_t scratch_buffer[1024];
- fd = open("test_random_bytes.sig", O_RDONLY);
- read_bytes = read(fd, scratch_buffer, 1024);
- assertTrue(read_bytes == 128, "read incorrect size signature from disk: %zu", read_bytes);
- close(fd);
-
- PARCBufferComposer *composer = parcBufferComposer_Create();
- parcBufferComposer_PutArray(composer, scratch_buffer, read_bytes);
- PARCBuffer *bb_sig = parcBufferComposer_ProduceBuffer(composer);
-
- // HERE WE TELL IT DSA, NOT RSA
- PARCSignature *signatureToVerify = parcSignature_Create(PARCSigningAlgorithm_DSA,
- PARCCryptoHashType_SHA256,
- bb_sig);
- parcBuffer_Release(&bb_sig);
- parcBufferComposer_Release(&composer);
-
- bool success = _parcInMemoryVerifier_VerifyDigest(data->inMemoryInterface, parcKey_GetKeyId(key), localHash, PARCCryptoSuite_RSA_SHA256, signatureToVerify);
-
- parcSignature_Release(&signatureToVerify);
- parcCryptoHash_Release(&localHash);
- parcKey_Release(&key);
-
- assertFalse(success, "Signatures should not have verified! Wrong hash types!");
-}
-
-/**
- * THis tests the locally computed digest not matching te digest used for the signature.
- */
-LONGBOW_TEST_CASE(Local, parcInMemoryVerifier_VerifySignature_BadHash)
-{
- TestData *data = longBowTestCase_GetClipBoardData(testCase);
-
- // Setup the key in the verifier
-
- PARCKey *key = parcSigner_CreatePublicKey(data->signer);
-
- _parcInMemoryVerifier_AddKey(data->inMemoryInterface, key);
-
- // read the buffer to sign
- int fd = open("test_random_bytes", O_RDONLY);
- uint8_t buffer_to_sign[2048];
- ssize_t read_bytes = read(fd, buffer_to_sign, 2048);
- close(fd);
-
- // Digest it
- PARCCryptoHasher *digester = _parcInMemoryVerifier_GetCryptoHasher(data->inMemoryInterface, parcKey_GetKeyId(key), PARCCryptoHashType_SHA256);
- assertNotNull(digester, "got null cryptohasher from inmemory verifier");
-
- // DIGEST THE BYTES TWICE TO GIVE WRONG HASH
- parcCryptoHasher_Init(digester);
- parcCryptoHasher_UpdateBytes(digester, buffer_to_sign, read_bytes);
- parcCryptoHasher_UpdateBytes(digester, buffer_to_sign, read_bytes);
- PARCCryptoHash *localHash = parcCryptoHasher_Finalize(digester);
-
- // now read the "true" signature
- uint8_t scratch_buffer[1024];
- fd = open("test_random_bytes.sig", O_RDONLY);
- read_bytes = read(fd, scratch_buffer, 1024);
- assertTrue(read_bytes == 128, "read incorrect size signature from disk: %zu", read_bytes);
- close(fd);
-
- PARCBufferComposer *composer = parcBufferComposer_Create();
- parcBufferComposer_PutArray(composer, scratch_buffer, read_bytes);
- PARCBuffer *bb_sig = parcBufferComposer_ProduceBuffer(composer);
-
- PARCSignature *signatureToVerify = parcSignature_Create(PARCSigningAlgorithm_RSA,
- PARCCryptoHashType_SHA256,
- bb_sig);
- parcBuffer_Release(&bb_sig);
- parcBufferComposer_Release(&composer);
-
- bool success = _parcInMemoryVerifier_VerifyDigest(data->inMemoryInterface, parcKey_GetKeyId(key), localHash, PARCCryptoSuite_RSA_SHA256, signatureToVerify);
-
- parcSignature_Release(&signatureToVerify);
- parcCryptoHash_Release(&localHash);
- parcKey_Release(&key);
-
- assertFalse(success, "Signature verified even with wrong hash");
-}
-
-int
-main(int argc, char *argv[argc])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(parc_InMemoryVerifier);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_InMemoryVerifierECDSA.c b/libparc/parc/security/test/test_parc_InMemoryVerifierECDSA.c
deleted file mode 100644
index c007c176..00000000
--- a/libparc/parc/security/test/test_parc_InMemoryVerifierECDSA.c
+++ /dev/null
@@ -1,417 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-// Include the file(s) containing the functions to be tested.
-// This permits internal static functions to be visible to this Test Framework.
-#include "../parc_InMemoryVerifier.c"
-
-#include <parc/algol/parc_SafeMemory.h>
-#include <parc/algol/parc_BufferComposer.h>
-#include <parc/security/parc_Security.h>
-
-#include <parc/security/parc_Pkcs12KeyStore.h>
-#include <parc/security/parc_KeyStore.h>
-#include <parc/security/parc_PublicKeySigner.h>
-#include <parc/security/parc_Signer.h>
-
-#include <fcntl.h>
-#include <LongBow/unit-test.h>
-
-LONGBOW_TEST_RUNNER(parc_InMemoryVerifier)
-{
- // The following Test Fixtures will run their corresponding Test Cases.
- // Test Fixtures are run in the order specified, but all tests should be idempotent.
- // Never rely on the execution order of tests or share state between them.
- LONGBOW_RUN_TEST_FIXTURE(Global);
- LONGBOW_RUN_TEST_FIXTURE(Local);
-}
-
-// The Test Runner calls this function once before any Test Fixtures are run.
-LONGBOW_TEST_RUNNER_SETUP(parc_InMemoryVerifier)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(parc_InMemoryVerifier)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Global)
-{
- parcSecurity_Init();
- LONGBOW_RUN_TEST_CASE(Global, parcInMemoryVerifier_Create);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- parcSecurity_Fini();
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Global, parcInMemoryVerifier_Create)
-{
- PARCInMemoryVerifier *verifier = parcInMemoryVerifier_Create();
-
- assertNotNull(verifier, "Got null result from parcInMemoryVerifier_Create");
-
- parcInMemoryVerifier_Release(&verifier);
-}
-
-// ===========
-// We use the known keys on disk for these tests
-
-typedef struct test_data {
- PARCSigner *signer;
- PARCInMemoryVerifier *inMemoryInterface;
-} TestData;
-
-LONGBOW_TEST_FIXTURE(Local)
-{
- LONGBOW_RUN_TEST_CASE(Local, parcInMemoryVerifier_AddKeyId);
- LONGBOW_RUN_TEST_CASE(Local, parcInMemoryVerifier_GetCryptoHasher);
- LONGBOW_RUN_TEST_CASE(Local, parcInMemoryVerifier_AllowedCryptoSuite_ECDSA);
-
- LONGBOW_RUN_TEST_CASE(Local, parcInMemoryVerifier_RemoveKeyId);
- LONGBOW_RUN_TEST_CASE(Local, parcInMemoryVerifier_VerifySignature);
- LONGBOW_RUN_TEST_CASE(Local, parcInMemoryVerifier_VerifySignature_BadHashAlg);
- LONGBOW_RUN_TEST_CASE(Local, parcInMemoryVerifier_VerifySignature_BadSigAlg);
- LONGBOW_RUN_TEST_CASE(Local, parcInMemoryVerifier_VerifySignature_BadHash);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Local)
-{
- parcMemory_SetInterface(&PARCSafeMemoryAsPARCMemory);
- parcSecurity_Init();
-
- TestData *data = parcMemory_AllocateAndClear(sizeof(TestData));
- assertNotNull(data, "parcMemory_AllocateAndClear(%zu) returned NULL", sizeof(TestData));
-
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open("test_ec.p12", "blueberry", PARCCryptoHashType_SHA256);
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCPublicKeySigner *ecSigner = parcPublicKeySigner_Create(keyStore, PARCCryptoSuite_ECDSA_SHA256);
- parcKeyStore_Release(&keyStore);
-
- data->signer = parcSigner_Create(ecSigner, PARCPublicKeySignerAsSigner);
- parcPublicKeySigner_Release(&ecSigner);
- assertNotNull(data->signer, "Got null result from opening openssl pkcs12 file");
-
- data->inMemoryInterface = parcInMemoryVerifier_Create();
-
- longBowTestCase_SetClipBoardData(testCase, data);
-
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Local)
-{
- TestData *data = longBowTestCase_GetClipBoardData(testCase);
-
- parcInMemoryVerifier_Release(&data->inMemoryInterface);
- parcSigner_Release(&data->signer);
- parcMemory_Deallocate((void **) &data);
-
- parcSecurity_Fini();
-
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Local, parcInMemoryVerifier_GetCryptoHasher)
-{
- TestData *data = longBowTestCase_GetClipBoardData(testCase);
-
- PARCKey *key = parcSigner_CreatePublicKey(data->signer);
- _parcInMemoryVerifier_AddKey(data->inMemoryInterface, key);
-
- PARCCryptoHasher *hasher = _parcInMemoryVerifier_GetCryptoHasher(data->inMemoryInterface, parcKey_GetKeyId(key), PARCCryptoHashType_SHA256);
- parcKey_Release(&key);
- assertNotNull(hasher, "Got a null hasher");
-}
-
-LONGBOW_TEST_CASE(Local, parcInMemoryVerifier_AddKeyId)
-{
- TestData *data = longBowTestCase_GetClipBoardData(testCase);
-
- // create the key with copies of the byte buffers
- PARCKey *key = parcSigner_CreatePublicKey(data->signer);
-
- _parcInMemoryVerifier_AddKey(data->inMemoryInterface, key);
-
- // now do something that uses the key
- bool success = _parcInMemoryVerifier_AllowedCryptoSuite(data->inMemoryInterface, parcKey_GetKeyId(key), PARCCryptoSuite_ECDSA_SHA256);
- parcKey_Release(&key);
- assertTrue(success, "Should have allowed PARCCryptoSuite_ECDSA_SHA256 for an ECDSA keystore");
-}
-
-LONGBOW_TEST_CASE(Local, parcInMemoryVerifier_AllowedCryptoSuite_ECDSA)
-{
- TestData *data = longBowTestCase_GetClipBoardData(testCase);
-
- PARCKey *key = parcSigner_CreatePublicKey(data->signer);
- _parcInMemoryVerifier_AddKey(data->inMemoryInterface, key);
-
- // now do something that uses the key
- bool success = _parcInMemoryVerifier_AllowedCryptoSuite(data->inMemoryInterface, parcKey_GetKeyId(key), PARCCryptoSuite_ECDSA_SHA256);
- parcKey_Release(&key);
- assertTrue(success, "Should have allowed PARCCryptoSuite_ECDSA_SHA256 for an ECDSA keystore");
-}
-
-LONGBOW_TEST_CASE(Local, parcInMemoryVerifier_RemoveKeyId)
-{
- testUnimplemented("This test is unimplemented");
-}
-
-/**
- * Verify the openssl signature using the public key and our locally computed hash
- */
-LONGBOW_TEST_CASE(Local, parcInMemoryVerifier_VerifySignature)
-{
- TestData *data = longBowTestCase_GetClipBoardData(testCase);
-
- // Setup the key in the verifier
-
- PARCKey *key = parcSigner_CreatePublicKey(data->signer);
-
- _parcInMemoryVerifier_AddKey(data->inMemoryInterface, key);
-
- // read the buffer to sign
- int fd = open("test_random_bytes", O_RDONLY);
- uint8_t buffer_to_sign[2048];
- ssize_t read_bytes = read(fd, buffer_to_sign, 2048);
- close(fd);
-
- // Digest it
- PARCCryptoHasher *digester = _parcInMemoryVerifier_GetCryptoHasher(data->inMemoryInterface, parcKey_GetKeyId(key), PARCCryptoHashType_SHA256);
- assertNotNull(digester, "got null cryptohasher from inmemory verifier");
-
- parcCryptoHasher_Init(digester);
- parcCryptoHasher_UpdateBytes(digester, buffer_to_sign, read_bytes);
- PARCCryptoHash *localHash = parcCryptoHasher_Finalize(digester);
-
- // now read the "true" signature
- uint8_t scratch_buffer[1024];
- fd = open("test_random_bytes.sig_ec", O_RDONLY);
- read_bytes = read(fd, scratch_buffer, 1024);
- assertTrue(read_bytes <= 72,
- "read incorrect size signature from disk: %zu", read_bytes);
- close(fd);
-
- PARCBufferComposer *composer = parcBufferComposer_Create();
- parcBufferComposer_PutArray(composer, scratch_buffer, read_bytes);
- PARCBuffer *bb_sig = parcBufferComposer_ProduceBuffer(composer);
-
- PARCSignature *signatureToVerify = parcSignature_Create(PARCSigningAlgorithm_ECDSA, PARCCryptoHashType_SHA256, bb_sig);
- parcBuffer_Release(&bb_sig);
- parcBufferComposer_Release(&composer);
-
- bool success = _parcInMemoryVerifier_VerifyDigest(data->inMemoryInterface, parcKey_GetKeyId(key), localHash, PARCCryptoSuite_ECDSA_SHA256, signatureToVerify);
-
- parcSignature_Release(&signatureToVerify);
- parcCryptoHash_Release(&localHash);
- parcKey_Release(&key);
-
- assertTrue(success, "Could not validate signature");
-}
-
-/**
- * Same as the "good" code above, but calculate the hash with the wrong hash algorithm. This is
- * what would happen if the signer and the verifier did not use the same hash algorithym.
- */
-LONGBOW_TEST_CASE(Local, parcInMemoryVerifier_VerifySignature_BadHashAlg)
-{
- TestData *data = longBowTestCase_GetClipBoardData(testCase);
- bool success;
-
- // Setup the key in the verifier
-
- PARCKey *key = parcSigner_CreatePublicKey(data->signer);
-
- _parcInMemoryVerifier_AddKey(data->inMemoryInterface, key);
-
- // read the buffer to sign
- int fd = open("test_random_bytes", O_RDONLY);
- uint8_t buffer_to_sign[2048];
- ssize_t read_bytes = read(fd, buffer_to_sign, 2048);
- close(fd);
-
- // Digest it WITH THE WRONG HASH
- PARCCryptoHasher *digester = _parcInMemoryVerifier_GetCryptoHasher(data->inMemoryInterface, parcKey_GetKeyId(key), PARCCryptoHashType_SHA512);
- assertNotNull(digester, "got null cryptohasher from inmemory verifier");
-
- parcCryptoHasher_Init(digester);
- parcCryptoHasher_UpdateBytes(digester, buffer_to_sign, read_bytes);
- PARCCryptoHash *localHash = parcCryptoHasher_Finalize(digester);
-
- // now read the "true" signature
- uint8_t scratch_buffer[1024];
- fd = open("test_random_bytes.sig_ec", O_RDONLY);
- read_bytes = read(fd, scratch_buffer, 1024);
- assertTrue(read_bytes <= 72, "read incorrect size signature from disk: %zu", read_bytes);
- close(fd);
-
- PARCBufferComposer *composer = parcBufferComposer_Create();
- parcBufferComposer_PutArray(composer, scratch_buffer, read_bytes);
- PARCBuffer *bb_sig = parcBufferComposer_ProduceBuffer(composer);
-
- PARCSignature *signatureToVerify = parcSignature_Create(PARCSigningAlgorithm_ECDSA,
- PARCCryptoHashType_SHA256,
- bb_sig);
- parcBuffer_Release(&bb_sig);
- parcBufferComposer_Release(&composer);
-
- success = _parcInMemoryVerifier_VerifyDigest(data->inMemoryInterface, parcKey_GetKeyId(key), localHash, PARCCryptoSuite_ECDSA_SHA256, signatureToVerify);
-
- parcSignature_Release(&signatureToVerify);
- parcCryptoHash_Release(&localHash);
- parcKey_Release(&key);
-
- assertFalse(success, "Signatures should not have verified! Wrong hash types!");
-}
-
-
-/**
- * Same as the "good" code, but tell the verifier the wrong key type. This is what would
- * happen if the verifier somehow picked the wrong cryptosuite.
- */
-LONGBOW_TEST_CASE(Local, parcInMemoryVerifier_VerifySignature_BadSigAlg)
-{
- TestData *data = longBowTestCase_GetClipBoardData(testCase);
-
- // Setup the key in the verifier
- PARCKey *key = parcSigner_CreatePublicKey(data->signer);
-
- _parcInMemoryVerifier_AddKey(data->inMemoryInterface, key);
-
- // read the buffer to sign
- int fd = open("test_random_bytes", O_RDONLY);
- uint8_t buffer_to_sign[2048];
- ssize_t read_bytes = read(fd, buffer_to_sign, 2048);
- close(fd);
-
- // Digest it
- PARCCryptoHasher *digester = _parcInMemoryVerifier_GetCryptoHasher(data->inMemoryInterface, parcKey_GetKeyId(key), PARCCryptoHashType_SHA256);
- assertNotNull(digester, "got null cryptohasher from inmemory verifier");
-
- parcCryptoHasher_Init(digester);
- parcCryptoHasher_UpdateBytes(digester, buffer_to_sign, read_bytes);
- PARCCryptoHash *localHash = parcCryptoHasher_Finalize(digester);
-
- // now read the "true" signature
- uint8_t scratch_buffer[1024];
- fd = open("test_random_bytes.sig_ec", O_RDONLY);
- read_bytes = read(fd, scratch_buffer, 1024);
- assertTrue(read_bytes <= 72, "read incorrect size signature from disk: %zu", read_bytes);
- close(fd);
-
- PARCBufferComposer *composer = parcBufferComposer_Create();
- parcBufferComposer_PutArray(composer, scratch_buffer, read_bytes);
- PARCBuffer *bb_sig = parcBufferComposer_ProduceBuffer(composer);
-
- // HERE WE TELL IT DSA, NOT RSA
- PARCSignature *signatureToVerify = parcSignature_Create(PARCSigningAlgorithm_DSA,
- PARCCryptoHashType_SHA256,
- bb_sig);
- parcBuffer_Release(&bb_sig);
- parcBufferComposer_Release(&composer);
-
- bool success = _parcInMemoryVerifier_VerifyDigest(data->inMemoryInterface, parcKey_GetKeyId(key), localHash, PARCCryptoSuite_ECDSA_SHA256, signatureToVerify);
-
- parcSignature_Release(&signatureToVerify);
- parcCryptoHash_Release(&localHash);
- parcKey_Release(&key);
-
- assertFalse(success, "Signatures should not have verified! Wrong hash types!");
-}
-
-/**
- * THis tests the locally computed digest not matching te digest used for the signature.
- */
-LONGBOW_TEST_CASE(Local, parcInMemoryVerifier_VerifySignature_BadHash)
-{
- TestData *data = longBowTestCase_GetClipBoardData(testCase);
-
- // Setup the key in the verifier
-
- PARCKey *key = parcSigner_CreatePublicKey(data->signer);
-
- _parcInMemoryVerifier_AddKey(data->inMemoryInterface, key);
-
- // read the buffer to sign
- int fd = open("test_random_bytes", O_RDONLY);
- uint8_t buffer_to_sign[2048];
- ssize_t read_bytes = read(fd, buffer_to_sign, 2048);
- close(fd);
-
- // Digest it
- PARCCryptoHasher *digester = _parcInMemoryVerifier_GetCryptoHasher(data->inMemoryInterface, parcKey_GetKeyId(key), PARCCryptoHashType_SHA256);
- assertNotNull(digester, "got null cryptohasher from inmemory verifier");
-
- // DIGEST THE BYTES TWICE TO GIVE WRONG HASH
- parcCryptoHasher_Init(digester);
- parcCryptoHasher_UpdateBytes(digester, buffer_to_sign, read_bytes);
- parcCryptoHasher_UpdateBytes(digester, buffer_to_sign, read_bytes);
- PARCCryptoHash *localHash = parcCryptoHasher_Finalize(digester);
-
- // now read the "true" signature
- uint8_t scratch_buffer[1024];
- fd = open("test_random_bytes.sig_ec", O_RDONLY);
- read_bytes = read(fd, scratch_buffer, 1024);
- assertTrue(read_bytes <= 72, "read incorrect size signature from disk: %zu", read_bytes);
- close(fd);
-
- PARCBufferComposer *composer = parcBufferComposer_Create();
- parcBufferComposer_PutArray(composer, scratch_buffer, read_bytes);
- PARCBuffer *bb_sig = parcBufferComposer_ProduceBuffer(composer);
-
- PARCSignature *signatureToVerify = parcSignature_Create(PARCSigningAlgorithm_ECDSA,
- PARCCryptoHashType_SHA256,
- bb_sig);
- parcBuffer_Release(&bb_sig);
- parcBufferComposer_Release(&composer);
-
- bool success = _parcInMemoryVerifier_VerifyDigest(data->inMemoryInterface, parcKey_GetKeyId(key), localHash, PARCCryptoSuite_ECDSA_SHA256, signatureToVerify);
-
- parcSignature_Release(&signatureToVerify);
- parcCryptoHash_Release(&localHash);
- parcKey_Release(&key);
-
- assertFalse(success, "Signature verified even with wrong hash");
-}
-
-int
-main(int argc, char *argv[argc])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(parc_InMemoryVerifier);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_Key.c b/libparc/parc/security/test/test_parc_Key.c
deleted file mode 100755
index d22362b0..00000000
--- a/libparc/parc/security/test/test_parc_Key.c
+++ /dev/null
@@ -1,357 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-// Include the file(s) containing the functions to be tested.
-// This permits internal static functions to be visible to this Test Framework.
-#include "../parc_Key.c"
-
-#include <LongBow/unit-test.h>
-#include <parc/testing/parc_ObjectTesting.h>
-
-LONGBOW_TEST_RUNNER(parc_Key)
-{
- LONGBOW_RUN_TEST_FIXTURE(Global);
- LONGBOW_RUN_TEST_FIXTURE(Errors);
-}
-
-LONGBOW_TEST_RUNNER_SETUP(parc_Key)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_RUNNER_TEARDOWN(parc_Key)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Global)
-{
- LONGBOW_RUN_TEST_CASE(Global, parcKey_CreateFromDerEncodedPublicKey);
- LONGBOW_RUN_TEST_CASE(Global, parcKey_CreateFromSymmetricKey);
- LONGBOW_RUN_TEST_CASE(Global, parcKey_Equals);
- LONGBOW_RUN_TEST_CASE(Global, parcKey_Copy);
- LONGBOW_RUN_TEST_CASE(Global, parcKey_GetKey);
- LONGBOW_RUN_TEST_CASE(Global, parcKey_GetKeyId);
- LONGBOW_RUN_TEST_CASE(Global, parcKey_GetSigningAlgorithm);
- LONGBOW_RUN_TEST_CASE(Global, parcKey_Acquire);
- LONGBOW_RUN_TEST_CASE(Global, parcKey_ToString);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Global, parcKey_Copy)
-{
- PARCBuffer *bb_id = parcBuffer_Wrap("choo choo", 9, 0, 9);
- PARCKeyId *keyid = parcKeyId_Create(bb_id);
- parcBuffer_Release(&bb_id);
-
- PARCBufferComposer *composer = parcBufferComposer_Create();
- parcBufferComposer_PutString(composer, "quack quack");
- PARCBuffer *bb_key = parcBufferComposer_ProduceBuffer(composer);
-
- PARCKey *key = parcKey_CreateFromDerEncodedPublicKey(keyid, PARCSigningAlgorithm_RSA, bb_key);
- parcKey_AssertValid(key);
-
- PARCKey *copy = parcKey_Copy(key);
- parcKey_AssertValid(copy);
-
- assertTrue(parcKey_Equals(key, copy), "Expected the original key instance and its copy to be equal");
-
- parcKey_Release(&copy);
- parcKey_Release(&key);
- parcBuffer_Release(&bb_key);
- parcBufferComposer_Release(&composer);
- parcKeyId_Release(&keyid);
-}
-
-LONGBOW_TEST_CASE(Global, parcKey_CreateFromDerEncodedPublicKey)
-{
- PARCBuffer *bb_id = parcBuffer_Wrap("choo choo", 9, 0, 9);
- PARCKeyId *keyid = parcKeyId_Create(bb_id);
- parcBuffer_Release(&bb_id);
-
- PARCBufferComposer *composer = parcBufferComposer_Create();
- parcBufferComposer_PutString(composer, "quack quack");
- PARCBuffer *bb_key = parcBufferComposer_ProduceBuffer(composer);
-
- PARCKey *key = parcKey_CreateFromDerEncodedPublicKey(keyid, PARCSigningAlgorithm_RSA, bb_key);
-
- parcKey_AssertValid(key);
-
- parcKey_Release(&key);
- parcBuffer_Release(&bb_key);
- parcBufferComposer_Release(&composer);
- parcKeyId_Release(&keyid);
-}
-
-LONGBOW_TEST_CASE(Global, parcKey_CreateFromSymmetricKey)
-{
- PARCBuffer *bb_id = parcBuffer_Wrap("choo choo", 9, 0, 9);
- PARCKeyId *keyid = parcKeyId_Create(bb_id);
- parcBuffer_Release(&bb_id);
-
- PARCBufferComposer *composer = parcBufferComposer_Create();
- parcBufferComposer_PutString(composer, "quack quack");
- PARCBuffer *bb_key = parcBufferComposer_ProduceBuffer(composer);
- PARCKey *key = parcKey_CreateFromSymmetricKey(keyid, PARCSigningAlgorithm_HMAC, bb_key);
-
- parcKey_AssertValid(key);
-
- parcKey_Release(&key);
- parcBuffer_Release(&bb_key);
- parcBufferComposer_Release(&composer);
- parcKeyId_Release(&keyid);
-}
-
-LONGBOW_TEST_CASE(Global, parcKey_Equals)
-{
- PARCBuffer *bb_id_1 = parcBuffer_Wrap("choo choo", 9, 0, 9);
- PARCKeyId *keyid_1 = parcKeyId_Create(bb_id_1);
- parcBuffer_Release(&bb_id_1);
-
- PARCBuffer *bb_id_2 = parcBuffer_Wrap("chugga chugga", 13, 0, 13);
- PARCKeyId *keyid_2 = parcKeyId_Create(bb_id_2);
- parcBuffer_Release(&bb_id_2);
-
- PARCBufferComposer *composer1 = parcBufferComposer_Create();
- parcBufferComposer_PutString(composer1, "quack quack");
- PARCBuffer *bb_key_1 = parcBufferComposer_ProduceBuffer(composer1);
-
- PARCKey *x = parcKey_CreateFromDerEncodedPublicKey(keyid_1, PARCSigningAlgorithm_RSA, bb_key_1);
- PARCKey *y = parcKey_CreateFromDerEncodedPublicKey(keyid_1, PARCSigningAlgorithm_RSA, bb_key_1);
- PARCKey *z = parcKey_CreateFromDerEncodedPublicKey(keyid_1, PARCSigningAlgorithm_RSA, bb_key_1);
-
- PARCBufferComposer *composer2 = parcBufferComposer_Create();
- parcBufferComposer_PutString(composer2, "mew mew");
- PARCBuffer *bb_key_2 = parcBufferComposer_ProduceBuffer(composer2);
- PARCKey *u1 = parcKey_CreateFromDerEncodedPublicKey(keyid_1, PARCSigningAlgorithm_RSA, bb_key_2);
- PARCKey *u2 = parcKey_CreateFromDerEncodedPublicKey(keyid_2, PARCSigningAlgorithm_RSA, bb_key_1);
-
- parcObjectTesting_AssertEqualsFunction(parcKey_Equals, x, y, z, u1, u2);
-
- parcBuffer_Release(&bb_key_1);
- parcBufferComposer_Release(&composer1);
- parcBuffer_Release(&bb_key_2);
- parcBufferComposer_Release(&composer2);
- parcKeyId_Release(&keyid_1);
- parcKeyId_Release(&keyid_2);
-
- parcKey_Release(&x);
- parcKey_Release(&y);
- parcKey_Release(&z);
- parcKey_Release(&u1);
- parcKey_Release(&u2);
-}
-
-LONGBOW_TEST_CASE(Global, parcKey_GetKey)
-{
- PARCBuffer *bb_id = parcBuffer_Wrap("choo choo", 9, 0, 9);
- PARCKeyId *keyid = parcKeyId_Create(bb_id);
- parcBuffer_Release(&bb_id);
-
- PARCBufferComposer *composer = parcBufferComposer_Create();
- parcBufferComposer_PutString(composer, "quack quack");
- PARCBuffer *bb_key = parcBufferComposer_ProduceBuffer(composer);
- PARCKey *key = parcKey_CreateFromDerEncodedPublicKey(keyid, PARCSigningAlgorithm_RSA, bb_key);
-
- parcKey_AssertValid(key);
-
- PARCBuffer *rawKey = parcKey_GetKey(key); // reference count is not incremented
- assertTrue(parcBuffer_Equals(rawKey, bb_key), "Expected the raw key buffers to be equal");
-
- parcKey_Release(&key);
- parcBuffer_Release(&bb_key);
- parcBufferComposer_Release(&composer);
- parcKeyId_Release(&keyid);
-}
-
-LONGBOW_TEST_CASE(Global, parcKey_GetKeyId)
-{
- PARCBuffer *bb_id = parcBuffer_Wrap("choo choo", 9, 0, 9);
- PARCKeyId *keyid = parcKeyId_Create(bb_id);
- parcBuffer_Release(&bb_id);
-
- PARCBufferComposer *composer = parcBufferComposer_Create();
- parcBufferComposer_PutString(composer, "quack quack");
- PARCBuffer *bb_key = parcBufferComposer_ProduceBuffer(composer);
- PARCKey *key = parcKey_CreateFromDerEncodedPublicKey(keyid, PARCSigningAlgorithm_RSA, bb_key);
-
- parcKey_AssertValid(key);
-
- PARCKeyId *rawKeyId = parcKey_GetKeyId(key); // reference count is not incremented
- assertTrue(parcKeyId_Equals(rawKeyId, keyid), "Expected the raw KeyID buffers to be equal");
-
- parcKey_Release(&key);
- parcBuffer_Release(&bb_key);
- parcBufferComposer_Release(&composer);
- parcKeyId_Release(&keyid);
-}
-
-LONGBOW_TEST_CASE(Global, parcKey_GetSigningAlgorithm)
-{
- // Check for PARCSigningAlgorithm_RSA value
- PARCBuffer *bb_id_1 = parcBuffer_Wrap("choo choo", 9, 0, 9);
- PARCKeyId *keyid_1 = parcKeyId_Create(bb_id_1);
- parcBuffer_Release(&bb_id_1);
-
- PARCBufferComposer *composer1 = parcBufferComposer_Create();
- parcBufferComposer_PutString(composer1, "quack quack");
- PARCBuffer *bb_key_1 = parcBufferComposer_ProduceBuffer(composer1);
- PARCKey *key_1 = parcKey_CreateFromDerEncodedPublicKey(keyid_1, PARCSigningAlgorithm_RSA, bb_key_1);
-
- parcKey_AssertValid(key_1);
-
- assertTrue((parcKey_GetSigningAlgorithm(key_1) == PARCSigningAlgorithm_RSA), "Signing Algorithms don't match");
-
- parcBuffer_Release(&bb_key_1);
- parcBufferComposer_Release(&composer1);
- parcKeyId_Release(&keyid_1);
- parcKey_Release(&key_1);
-
- // Check for PARCSigningAlgorithm_HMAC value
- PARCBuffer *bb_id_2 = parcBuffer_Wrap("choo choo", 9, 0, 9);
- PARCKeyId *keyid_2 = parcKeyId_Create(bb_id_2);
- parcBuffer_Release(&bb_id_2);
-
- PARCBufferComposer *composer2 = parcBufferComposer_Create();
- parcBufferComposer_PutString(composer2, "quack quack");
- PARCBuffer *bb_key_2 = parcBufferComposer_ProduceBuffer(composer2);
- PARCKey *key_2 = parcKey_CreateFromSymmetricKey(keyid_2, PARCSigningAlgorithm_HMAC, bb_key_2);
-
- parcKey_AssertValid(key_2);
-
- assertTrue((parcKey_GetSigningAlgorithm(key_2) == PARCSigningAlgorithm_HMAC), "Signing Algorithms don't match");
-
- parcBuffer_Release(&bb_key_2);
- parcBufferComposer_Release(&composer2);
- parcKeyId_Release(&keyid_2);
- parcKey_Release(&key_2);
-}
-
-LONGBOW_TEST_CASE(Global, parcKey_Acquire)
-{
- PARCBuffer *bb_id = parcBuffer_Wrap("choo choo", 9, 0, 9);
- PARCKeyId *keyid = parcKeyId_Create(bb_id);
- parcBuffer_Release(&bb_id);
-
- PARCBufferComposer *composer = parcBufferComposer_Create();
- parcBufferComposer_PutString(composer, "quack quack");
- PARCBuffer *bb_key = parcBufferComposer_ProduceBuffer(composer);
- PARCKey *key = parcKey_CreateFromDerEncodedPublicKey(keyid, PARCSigningAlgorithm_RSA, bb_key);
-
- parcKey_AssertValid(key);
-
- parcObjectTesting_AssertAcquireReleaseContract(parcKey_Acquire, key);
- parcKey_Release(&key);
- parcBuffer_Release(&bb_key);
- parcBufferComposer_Release(&composer);
- parcKeyId_Release(&keyid);
-}
-
-LONGBOW_TEST_CASE(Global, parcKey_ToString)
-{
- PARCBuffer *bb_id = parcBuffer_Wrap("choo choo", 9, 0, 9);
- PARCKeyId *keyid = parcKeyId_Create(bb_id);
- parcBuffer_Release(&bb_id);
-
- PARCBufferComposer *composer = parcBufferComposer_Create();
- parcBufferComposer_PutString(composer, "quack quack");
- PARCBuffer *bb_key = parcBufferComposer_ProduceBuffer(composer);
- PARCKey *key = parcKey_CreateFromDerEncodedPublicKey(keyid, PARCSigningAlgorithm_RSA, bb_key);
-
- char *keyString = parcKey_ToString(key);
-
- assertNotNull(keyString, "Expected non-null key representation string");
- assertTrue(strlen(keyString) > 0, "Expected non-null key representation string");
-
- parcKey_Release(&key);
- parcBuffer_Release(&bb_key);
- parcBufferComposer_Release(&composer);
- parcKeyId_Release(&keyid);
-}
-
-LONGBOW_TEST_FIXTURE(Errors)
-{
- LONGBOW_RUN_TEST_CASE(Errors, parcKey_CreateFromDerEncodedPublicKey_InvalidAlgorithm);
- LONGBOW_RUN_TEST_CASE(Errors, parcKey_CreateFromSymmetricKey_InvalidAlgorithm);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Errors)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Errors)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE_EXPECTS(Errors, parcKey_CreateFromDerEncodedPublicKey_InvalidAlgorithm, .event = &LongBowTrapIllegalValue)
-{
- PARCBuffer *bb_id = parcBuffer_Wrap("choo choo", 9, 0, 9);
- PARCKeyId *keyid = parcKeyId_Create(bb_id);
- parcBuffer_Release(&bb_id);
-
- PARCBufferComposer *composer = parcBufferComposer_Create();
- parcBufferComposer_PutString(composer, "quack quack");
- PARCBuffer *bb_key = parcBufferComposer_ProduceBuffer(composer);
- PARCKey *key = parcKey_CreateFromDerEncodedPublicKey(keyid, PARCSigningAlgorithm_HMAC, bb_key);
-
- assertNull(key, "This should not be reached"); //To avoid a warning
-
- // HMAC is an illegal value for this constructor
-
- parcBuffer_Release(&bb_key);
- parcBufferComposer_Release(&composer);
- parcKeyId_Release(&keyid);
-}
-
-LONGBOW_TEST_CASE_EXPECTS(Errors, parcKey_CreateFromSymmetricKey_InvalidAlgorithm, .event = &LongBowTrapIllegalValue)
-{
- PARCBuffer *bb_id = parcBuffer_Wrap("choo choo", 9, 0, 9);
- PARCKeyId *keyid = parcKeyId_Create(bb_id);
- parcBuffer_Release(&bb_id);
-
- PARCBufferComposer *composer = parcBufferComposer_Create();
- parcBufferComposer_PutString(composer, "quack quack");
- PARCBuffer *bb_key = parcBufferComposer_ProduceBuffer(composer);
- PARCKey *key = parcKey_CreateFromSymmetricKey(keyid, PARCSigningAlgorithm_RSA, bb_key);
-
- assertNull(key, "This should not be reached"); //To avoid a warning
-
- // RSA/DSA are illegal values for this constructor
-
- parcBuffer_Release(&bb_key);
- parcBufferComposer_Release(&composer);
- parcKeyId_Release(&keyid);
-}
-
-int
-main(int argc, char *argv[argc])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(parc_Key);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner, NULL);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_KeyId.c b/libparc/parc/security/test/test_parc_KeyId.c
deleted file mode 100644
index 1b14486d..00000000
--- a/libparc/parc/security/test/test_parc_KeyId.c
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- */
-// Include the file(s) containing the functions to be tested.
-// This permits internal static functions to be visible to this Test Framework.
-#include <parc/security/parc_KeyId.c>
-
-#include <LongBow/unit-test.h>
-#include <LongBow/debugging.h>
-
-#include <parc/algol/parc_SafeMemory.h>
-#include <parc/security/parc_Security.h>
-#include <parc/testing/parc_ObjectTesting.h>
-
-const char *testStr = "hello world";
-
-LONGBOW_TEST_RUNNER(test_parc_KeyId)
-{
- LONGBOW_RUN_TEST_FIXTURE(Global);
-}
-
-LONGBOW_TEST_RUNNER_SETUP(test_parc_KeyId)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_RUNNER_TEARDOWN(test_parc_KeyId)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Global)
-{
- LONGBOW_RUN_TEST_CASE(Global, parcKeyId_Create);
- LONGBOW_RUN_TEST_CASE(Global, parcKeyId_Acquire);
- LONGBOW_RUN_TEST_CASE(Global, parcKeyId_Copy);
- LONGBOW_RUN_TEST_CASE(Global, parcKeyId_Equals);
- LONGBOW_RUN_TEST_CASE(Global, parcKeyId_HashCode);
- LONGBOW_RUN_TEST_CASE(Global, parcKeyId_HashCodeFromVoid);
- LONGBOW_RUN_TEST_CASE(Global, parcKeyId_GetKeyId);
- LONGBOW_RUN_TEST_CASE(Global, parcKeyId_ToString);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Global, parcKeyId_Create)
-{
- PARCBuffer *buffer = parcBuffer_Wrap((void *) testStr, strlen(testStr), 0, strlen(testStr));
- PARCKeyId *keyId = parcKeyId_Create(buffer);
- parcBuffer_Release(&buffer);
-
- assertNotNull(keyId, "Expected non-null");
-
- parcKeyId_Release(&keyId);
- assertNull(keyId, "Release did not null the pointer.");
-}
-
-LONGBOW_TEST_CASE(Global, parcKeyId_Acquire)
-{
- PARCBuffer *buffer = parcBuffer_Wrap((void *) testStr, strlen(testStr), 0, strlen(testStr));
- PARCKeyId *keyId = parcKeyId_Create(buffer);
- parcBuffer_Release(&buffer);
-
- assertNotNull(keyId, "Expected non-null");
- parcObjectTesting_AssertAcquireReleaseContract(parcKeyId_Acquire, keyId);
-
- parcKeyId_Release(&keyId);
- assertNull(keyId, "Release did not null the pointer.");
-}
-
-LONGBOW_TEST_CASE(Global, parcKeyId_Copy)
-{
- PARCBuffer *buffer = parcBuffer_Wrap((void *) testStr, strlen(testStr), 0, strlen(testStr));
- PARCKeyId *keyId = parcKeyId_Create(buffer);
- parcBuffer_Release(&buffer);
-
- assertNotNull(keyId, "Expected non-null");
-
- PARCKeyId *copy = parcKeyId_Copy(keyId);
- parcKeyId_AssertValid(keyId);
- parcKeyId_AssertValid(copy);
-
- parcKeyId_Release(&keyId);
- assertNull(keyId, "parcKeyId_Release did not null the keyId pointer.");
-
- parcKeyId_AssertValid(copy);
- parcKeyId_Release(&copy);
- assertNull(keyId, "parcKeyId_Release did not null the keyId copy pointer.");
-}
-
-LONGBOW_TEST_CASE(Global, parcKeyId_Equals)
-{
- PARCBuffer *buffer1 = parcBuffer_Wrap((void *) testStr, strlen(testStr), 0, strlen(testStr));
- PARCKeyId *x = parcKeyId_Create(buffer1);
- parcBuffer_Release(&buffer1);
-
- PARCBuffer *buffer2 = parcBuffer_Wrap((void *) testStr, strlen(testStr), 0, strlen(testStr));
- PARCKeyId *y = parcKeyId_Create(buffer2);
- parcBuffer_Release(&buffer2);
-
- PARCBuffer *buffer3 = parcBuffer_Wrap((void *) testStr, strlen(testStr), 0, strlen(testStr));
- PARCKeyId *z = parcKeyId_Create(buffer3);
- parcBuffer_Release(&buffer3);
-
- PARCBuffer *buffer4 = parcBuffer_Wrap("hello worlx", 11, 0, 11);
- PARCKeyId *u1 = parcKeyId_Create(buffer4);
- parcBuffer_Release(&buffer4);
-
- parcObjectTesting_AssertEqualsFunction(parcKeyId_Equals, x, y, z, u1);
-
- parcKeyId_Release(&x);
- parcKeyId_Release(&y);
- parcKeyId_Release(&z);
- parcKeyId_Release(&u1);
-
- assertNull(x, "Release did not null the pointer.");
- assertNull(y, "Release did not null the pointer.");
- assertNull(z, "Release did not null the pointer.");
- assertNull(u1, "Release did not null the pointer.");
-}
-
-LONGBOW_TEST_CASE(Global, parcKeyId_HashCode)
-{
- PARCBuffer *buffer = parcBuffer_Wrap((void *) testStr, strlen(testStr), 0, strlen(testStr));
- PARCKeyId *keyId = parcKeyId_Create(buffer);
-
- assertNotNull(keyId, "Expected non-null");
-
- assertTrue(parcKeyId_HashCode(keyId) == parcBuffer_HashCode(buffer), "Expected hash codes to be equal");
-
- parcBuffer_Release(&buffer);
- parcKeyId_Release(&keyId);
- assertNull(keyId, "Release did not null the pointer.");
-}
-
-
-LONGBOW_TEST_CASE(Global, parcKeyId_HashCodeFromVoid)
-{
- PARCBuffer *buffer = parcBuffer_Wrap((void *) testStr, strlen(testStr), 0, strlen(testStr));
- PARCKeyId *keyId = parcKeyId_Create(buffer);
-
- assertNotNull(keyId, "Expected non-null");
-
- assertTrue(parcKeyId_HashCodeFromVoid((void *) keyId) == parcBuffer_HashCode(buffer), "Expected hash codes to be equal");
-
- parcBuffer_Release(&buffer);
- parcKeyId_Release(&keyId);
- assertNull(keyId, "Release did not null the pointer.");
-}
-
-LONGBOW_TEST_CASE(Global, parcKeyId_GetKeyId)
-{
- PARCBuffer *buffer = parcBuffer_Wrap((void *) testStr, strlen(testStr), 0, strlen(testStr));
- PARCKeyId *keyId = parcKeyId_Create(buffer);
-
- assertNotNull(keyId, "Expected non-null");
-
- PARCBuffer *rawBuffer = (PARCBuffer *) parcKeyId_GetKeyId(keyId);
- assertTrue(parcBuffer_Equals(rawBuffer, buffer), "Expected the raw key buffers to be equal");
-
- parcBuffer_Release(&buffer);
- parcKeyId_Release(&keyId);
- assertNull(keyId, "Release did not null the pointer.");
-}
-
-LONGBOW_TEST_CASE(Global, parcKeyId_ToString)
-{
- PARCBuffer *buffer = parcBuffer_Wrap((void *) testStr, strlen(testStr), 0, strlen(testStr));
- PARCKeyId *keyId = parcKeyId_Create(buffer);
-
- parcBuffer_Release(&buffer);
-
- assertNotNull(keyId, "Expected non-null");
-
- char *string = parcKeyId_ToString(keyId);
- printf("Hello: %s\n", string);
- parcMemory_Deallocate((void **) &string);
-
- parcKeyId_Release(&keyId);
- assertNull(keyId, "Release did not null the pointer.");
-}
-
-int
-main(int argc, char *argv[])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(test_parc_KeyId);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner, NULL);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_KeyStore.c b/libparc/parc/security/test/test_parc_KeyStore.c
deleted file mode 100755
index b48099cb..00000000
--- a/libparc/parc/security/test/test_parc_KeyStore.c
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-// Include the file(s) containing the functions to be tested.
-// This permits internal static functions to be visible to this Test Framework.
-#include "../parc_KeyStore.c"
-#include <parc/testing/parc_ObjectTesting.h>
-
-#include <LongBow/unit-test.h>
-
-LONGBOW_TEST_RUNNER(parc_KeyStore)
-{
- // The following Test Fixtures will run their corresponding Test Cases.
- // Test Fixtures are run in the order specified, but all tests should be idempotent.
- // Never rely on the execution order of tests or share state between them.
- LONGBOW_RUN_TEST_FIXTURE(Global);
-}
-
-// The Test Runner calls this function once before any Test Fixtures are run.
-LONGBOW_TEST_RUNNER_SETUP(parc_KeyStore)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(parc_KeyStore)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Global)
-{
-// LONGBOW_RUN_TEST_CASE(Global, parcKeyStore_Acquire);
-// LONGBOW_RUN_TEST_CASE(Global, parcKeyStore_CreateFile);
-// LONGBOW_RUN_TEST_CASE(Global, parcKeyStore_GetFileName);
-// LONGBOW_RUN_TEST_CASE(Global, parcKeyStore_GetPassWord);
-// LONGBOW_RUN_TEST_CASE(Global, parcKeyStore_Release);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-//LONGBOW_TEST_CASE(Global, parcKeyStore_Acquire)
-//{
-// const char *keystoreName = "test_rsa.p12";
-// const char *keystorePassword = "blueberry";
-//
-// PARCKeyStore *keyStoreFile = parcKeyStore_CreateFile(keystoreName, keystorePassword);
-//
-// assertNotNull(keyStoreFile, "Expected non-null");
-//
-// parcObjectTesting_AssertAcquireReleaseContract(parcKeyStore_Acquire, keyStoreFile);
-//
-// parcKeyStore_Release(&keyStoreFile);
-//}
-//
-//LONGBOW_TEST_CASE(Global, parcKeyStore_CreateFile)
-//{
-// const char *keystoreName = "test_rsa.p12";
-// const char *keystorePassword = "blueberry";
-//
-// PARCKeyStore *keyStoreFile = parcKeyStore_CreateFile(keystoreName, keystorePassword);
-//
-// assertNotNull(keyStoreFile, "Expected non-null");
-//
-// parcKeyStore_Release(&keyStoreFile);
-//}
-//
-//LONGBOW_TEST_CASE(Global, parcKeyStore_GetFileName)
-//{
-// const char *keystoreName = "test_rsa.p12";
-// const char *keystorePassword = "blueberry";
-//
-// PARCKeyStore *keyStoreFile = parcKeyStore_CreateFile(keystoreName, keystorePassword);
-//
-// assertNotNull(keyStoreFile, "Expected non-null");
-//
-// assertEqualStrings(keystoreName, parcKeyStore_GetFileName(keyStoreFile));
-//
-// parcKeyStore_Release(&keyStoreFile);
-//}
-//
-//LONGBOW_TEST_CASE(Global, parcKeyStore_GetPassWord)
-//{
-// const char *keystoreName = "test_rsa.p12";
-// const char *keystorePassword = "blueberry";
-//
-// PARCKeyStore *keyStoreFile = parcKeyStore_CreateFile(keystoreName, keystorePassword);
-//
-// assertNotNull(keyStoreFile, "Expected non-null");
-//
-// assertEqualStrings(keystorePassword, parcKeyStore_GetPassWord(keyStoreFile));
-//
-// parcKeyStore_Release(&keyStoreFile);
-//}
-//
-//LONGBOW_TEST_CASE(Global, parcKeyStore_Release)
-//{
-// const char *keystoreName = "test_rsa.p12";
-// const char *keystorePassword = "blueberry";
-//
-// PARCKeyStore *keyStoreFile = parcKeyStore_CreateFile(keystoreName, keystorePassword);
-//
-// assertNotNull(keyStoreFile, "Expected non-null");
-//
-// parcKeyStore_Release(&keyStoreFile);
-// assertNull(keyStoreFile, "Key store File was not nulled out after Release()");
-//}
-
-int
-main(int argc, char *argv[argc])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(parc_KeyStore);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner, NULL);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_Pkcs12KeyStore.c b/libparc/parc/security/test/test_parc_Pkcs12KeyStore.c
deleted file mode 100755
index 17a5b60f..00000000
--- a/libparc/parc/security/test/test_parc_Pkcs12KeyStore.c
+++ /dev/null
@@ -1,470 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-/**
- */
-#include <config.h>
-
-#include <LongBow/testing.h>
-
-// Include the file(s) containing the functions to be tested.
-// This permits internal static functions to be visible to this Test Framework.
-#include "../parc_Pkcs12KeyStore.c"
-
-#include <parc/algol/parc_SafeMemory.h>
-#include <parc/security/parc_Security.h>
-#include <parc/security/parc_PublicKeySigner.h>
-
-const char *filename = "/tmp/filekeystore.p12";
-
-LONGBOW_TEST_RUNNER(ccnx_FileKeystore)
-{
- // The following Test Fixtures will run their corresponding Test Cases.
- // Test Fixtures are run in the order specified, but all tests should be idempotent.
- // Never rely on the execution order of tests or share state between them.
- LONGBOW_RUN_TEST_FIXTURE(Global);
- LONGBOW_RUN_TEST_FIXTURE(openssl_commandline);
- LONGBOW_RUN_TEST_FIXTURE(ccnx_internal);
-}
-
-// The Test Runner calls this function once before any Test Fixtures are run.
-LONGBOW_TEST_RUNNER_SETUP(ccnx_FileKeystore)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(ccnx_FileKeystore)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Global)
-{
- LONGBOW_RUN_TEST_CASE(Global, parcPkcs12KeyStore_Open);
- LONGBOW_RUN_TEST_CASE(Global, parcPkcs12KeyStore_badpass);
- LONGBOW_RUN_TEST_CASE(Global, parcPkcs12KeyStore_CreateAndOpen);
- LONGBOW_RUN_TEST_CASE(Global, parcPkcs12KeyStore_CreateFile_Fail);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- parcMemory_SetInterface(&PARCSafeMemoryAsPARCMemory);
- parcSecurity_Init();
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- unlink(filename);
- parcSecurity_Fini();
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Global, parcPkcs12KeyStore_Open)
-{
- // open our test p12 file created with openssl
- parcSecurity_Init();
-
- PARCPkcs12KeyStore *keyStore = parcPkcs12KeyStore_Open("test_rsa.p12", "blueberry", PARCCryptoHashType_SHA256);
-
- assertNotNull(keyStore, "Got null result from opening openssl pkcs12 file");
-
- parcPkcs12KeyStore_Release(&keyStore);
- parcSecurity_Fini();
-}
-
-LONGBOW_TEST_CASE(Global, parcPkcs12KeyStore_badpass)
-{
- // open our test p12 file created with openssl
-
- fprintf(stderr, "The next openssl error is expected, we're using the wrong password\n");
- PARCPkcs12KeyStore *keyStore = parcPkcs12KeyStore_Open("test_rsa.p12", "orange", PARCCryptoHashType_SHA256);
-
- assertNull(keyStore, "Got null result from opening openssl pkcs12 file");
-}
-
-LONGBOW_TEST_CASE(Global, parcPkcs12KeyStore_CreateAndOpen)
-{
- // create a file and open it
- const char *filename = "/tmp/parcPkcs12KeyStore_CreateAndOpen.p12";
- const char *password = "12345";
- const char *subject = "alice";
- bool result;
-
- result = parcPkcs12KeyStore_CreateFile(filename, password, subject, PARCSigningAlgorithm_RSA, 1024, 32);
- assertTrue(result, "got error from parcPkcs12KeyStore_CreatePkcs12File");
-
- PARCPkcs12KeyStore *keyStore = parcPkcs12KeyStore_Open(filename, password, PARCCryptoHashType_SHA256);
-
- assertNotNull(keyStore, "Got null result from opening openssl pkcs12 file");
-
- parcPkcs12KeyStore_Release(&keyStore);
- unlink(filename);
-}
-
-LONGBOW_TEST_CASE(Global, parcPkcs12KeyStore_CreateFile_Fail)
-{
- // create a file and open it
- const char *filename = "/tmp/parcPkcs12KeyStore_CreateAndOpen.p12";
- const char *password = "12345";
- const char *subject = "alice";
- bool result;
-
- result = parcPkcs12KeyStore_CreateFile(filename, password, subject, PARCSigningAlgorithm_RSA, -1, 32);
- assertFalse(result, "Expected false result from parcPkcs12KeyStore_CreateFile()");
-
- unlink(filename);
-}
-
-
-// =====================================================
-// These are tests based on internally-generated pkcs12
-
-LONGBOW_TEST_FIXTURE(ccnx_internal)
-{
- LONGBOW_RUN_TEST_CASE(ccnx_internal, parcPkcs12KeyStore_GetCertificateDigest);
- LONGBOW_RUN_TEST_CASE(ccnx_internal, parcPkcs12KeyStore_GetPublicKeyDigest);
- LONGBOW_RUN_TEST_CASE(ccnx_internal, parcPkcs12KeyStore_GetEncodedCertificate);
- LONGBOW_RUN_TEST_CASE(ccnx_internal, parcPkcs12KeyStore_GetEncodedPublicKey);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(ccnx_internal)
-{
- parcSecurity_Init();
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(ccnx_internal)
-{
- unlink(filename);
- parcSecurity_Fini();
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(ccnx_internal, parcPkcs12KeyStore_GetCertificateDigest)
-{
- // create a file and open it
- const char *password = "12345";
- const char *subject = "alice";
- bool result;
-
- result = parcPkcs12KeyStore_CreateFile(filename, password, subject, PARCSigningAlgorithm_RSA, 1024, 32);
- assertTrue(result, "got error from parcPkcs12KeyStore_CreatePkcs12File");
-
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open(filename, password, PARCCryptoHashType_SHA256);
- assertNotNull(publicKeyStore, "Got null result from opening openssl pkcs12 file");
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCCryptoHash *cert_digest = parcKeyStore_GetCertificateDigest(keyStore);
- assertNotNull(cert_digest, "got null public key digest for external pkcs12");
-
- size_t bb_length = parcBuffer_Remaining(parcCryptoHash_GetDigest(cert_digest));
- assertTrue(bb_length == SHA256_DIGEST_LENGTH,
- "Incorrect digest length returned from GetPublicKeyDigest: %zu", bb_length);
-
- parcKeyStore_Release(&keyStore);
- parcCryptoHash_Release(&cert_digest);
-}
-
-/**
- * Use a ccnx-generated pkcs12 file
- */
-LONGBOW_TEST_CASE(ccnx_internal, parcPkcs12KeyStore_GetPublicKeyDigest)
-{
- // create a file and open it
- const char *password = "12345";
- const char *subject = "alice";
- bool result;
-
- result = parcPkcs12KeyStore_CreateFile(filename, password, subject, PARCSigningAlgorithm_RSA, 1024, 32);
- assertTrue(result, "got error from parcPkcs12KeyStore_CreatePkcs12File");
-
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open(filename, password, PARCCryptoHashType_SHA256);
- assertNotNull(publicKeyStore, "Got null result from opening openssl pkcs12 file");
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCCryptoHash *pkd = parcKeyStore_GetVerifierKeyDigest(keyStore);
- assertNotNull(pkd, "got null public key digest for external pkcs12");
-
- size_t bb_length = parcBuffer_Remaining(parcCryptoHash_GetDigest(pkd));
- assertTrue(bb_length == SHA256_DIGEST_LENGTH, "Incorrect digest length returned from GetPublicKeyDigest: %zu", bb_length);
-
- parcKeyStore_Release(&keyStore);
- parcCryptoHash_Release(&pkd);
-}
-
-
-LONGBOW_TEST_CASE(ccnx_internal, parcPkcs12KeyStore_GetEncodedCertificate)
-{
- // create a file and open it
- const char *password = "12345";
- const char *subject = "alice";
- bool result;
-
- result = parcPkcs12KeyStore_CreateFile(filename, password, subject, PARCSigningAlgorithm_RSA, 1024, 32);
- assertTrue(result, "got error from parcPkcs12KeyStore_CreatePkcs12File");
-
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open(filename, password, PARCCryptoHashType_SHA256);
- assertNotNull(publicKeyStore, "Got null result from opening openssl pkcs12 file");
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCBuffer *certificate_der = parcKeyStore_GetDEREncodedCertificate(keyStore);
- assertNotNull(certificate_der, "got null public key digest for external pkcs12");
-
- // 557 (64-bit) and 553 (32-bit) are pre-etermined sizes of how big a DER encoded
- // certificate with a 1024-bit key should be
- size_t expectedMinimumLength = 545;
- size_t expectedMaximumLength = 560;
- size_t bb_length = parcBuffer_Remaining(certificate_der);
- assertTrue(expectedMinimumLength <= bb_length && bb_length <= expectedMaximumLength,
- "Digest unexpected size: got %zu expected %zu - %zu", bb_length, expectedMinimumLength, expectedMaximumLength);
-
- parcKeyStore_Release(&keyStore);
- parcBuffer_Release(&certificate_der);
-}
-
-LONGBOW_TEST_CASE(ccnx_internal, parcPkcs12KeyStore_GetEncodedPublicKey)
-{
- // create a file and open it
- const char *password = "12345";
- const char *subject = "alice";
- bool result;
-
- result = parcPkcs12KeyStore_CreateFile(filename, password, subject, PARCSigningAlgorithm_RSA, 1024, 32);
- assertTrue(result, "got error from parcPkcs12KeyStore_CreatePkcs12File");
-
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open(filename, password, PARCCryptoHashType_SHA256);
- assertNotNull(publicKeyStore, "Got null result from opening openssl pkcs12 file");
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCBuffer *pubkey_der = parcKeyStore_GetDEREncodedPublicKey(keyStore);
- assertNotNull(pubkey_der, "got null public key digest for external pkcs12");
-
- size_t bb_length = parcBuffer_Remaining(pubkey_der);
- assertTrue(bb_length == 162, "Incorrect digest length returned from GetPublicKeyDigest: %zu", bb_length);
-
- parcKeyStore_Release(&keyStore);
- parcBuffer_Release(&pubkey_der);
-}
-
-// =====================================================
-// These are tests based on pre-generated material from the openssl command line
-
-LONGBOW_TEST_FIXTURE(openssl_commandline)
-{
- LONGBOW_RUN_TEST_CASE(openssl_commandline, parcPkcs12KeyStore_GetCertificateDigest);
- LONGBOW_RUN_TEST_CASE(openssl_commandline, parcPkcs12KeyStore_GetPublicKeyDigest);
- LONGBOW_RUN_TEST_CASE(openssl_commandline, parcPkcs12KeyStore_GetEncodedCertificate);
- LONGBOW_RUN_TEST_CASE(openssl_commandline, parcPkcs12KeyStore_GetEncodedPublicKey);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(openssl_commandline)
-{
- parcSecurity_Init();
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(openssl_commandline)
-{
- unlink(filename);
- parcSecurity_Fini();
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-/**
- * read in the openssl command-line generated pkcs12 file
- */
-LONGBOW_TEST_CASE(openssl_commandline, parcPkcs12KeyStore_GetPublicKeyDigest)
-{
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open("test_rsa.p12", "blueberry", PARCCryptoHashType_SHA256);
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCPublicKeySigner *PublicKeySigner = parcPublicKeySigner_Create(keyStore, PARCCryptoSuite_RSA_SHA256);
- parcKeyStore_Release(&keyStore);
- PARCSigner *signer = parcSigner_Create(PublicKeySigner, PARCPublicKeySignerAsSigner);
- parcPublicKeySigner_Release(&PublicKeySigner);
-
- assertNotNull(signer, "parcPkcs12KeyStore_Open(\"test_rsa.p12\", \"blueberry\", PARCCryptoHashType_SHA256) returned NULL");
-
- PARCCryptoHash *pkd = parcKeyStore_GetVerifierKeyDigest(parcSigner_GetKeyStore(signer));
- assertNotNull(pkd, "got null public key digest for external pkcs12");
-
- // read in the "truth" from the command line utilities
-
- int fd = open("test_rsa_pub_sha256.bin", O_RDONLY);
- uint8_t true_digest[SHA256_DIGEST_LENGTH];
- ssize_t read_bytes = read(fd, true_digest, SHA256_DIGEST_LENGTH);
- close(fd);
-
- assertTrue(read_bytes == SHA256_DIGEST_LENGTH, "could not read %d byte digest from test_rsa_pub_sha256.bin", SHA256_DIGEST_LENGTH);
-
- PARCBuffer *digest = parcCryptoHash_GetDigest(pkd);
- const uint8_t *bb_buffer = parcByteArray_Array(parcBuffer_Array(digest));
- size_t bb_length = parcBuffer_Remaining(digest);
- assertTrue(bb_length == SHA256_DIGEST_LENGTH,
- "Incorrect digest length returned from GetPublicKeyDigest: %zu", bb_length);
-
- assertTrue(memcmp(bb_buffer, true_digest, SHA256_DIGEST_LENGTH) == 0, "digests did not match");
-
-
- parcSigner_Release(&signer);
- parcCryptoHash_Release(&pkd);
-}
-
-/**
- * Get the certificate digest from the openssl command line pkcs12
- */
-LONGBOW_TEST_CASE(openssl_commandline, parcPkcs12KeyStore_GetCertificateDigest)
-{
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open("test_rsa.p12", "blueberry", PARCCryptoHashType_SHA256);
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCPublicKeySigner *PublicKeySigner = parcPublicKeySigner_Create(keyStore, PARCCryptoSuite_RSA_SHA256);
- parcKeyStore_Release(&keyStore);
- PARCSigner *signer = parcSigner_Create(PublicKeySigner, PARCPublicKeySignerAsSigner);
- parcPublicKeySigner_Release(&PublicKeySigner);
-
- assertNotNull(signer, "Got null result from opening openssl pkcs12 file");
-
- PARCCryptoHash *cert_digest = parcKeyStore_GetCertificateDigest(parcSigner_GetKeyStore(signer));
- assertNotNull(cert_digest, "got null public key digest for external pkcs12");
-
- // read in the "truth" from the command line utilities
-
- int fd = open("test_rsa_crt_sha256.bin", O_RDONLY);
- uint8_t true_digest[SHA256_DIGEST_LENGTH];
- ssize_t read_bytes = read(fd, true_digest, SHA256_DIGEST_LENGTH);
- close(fd);
-
- assertTrue(read_bytes == SHA256_DIGEST_LENGTH, "could not read %d byte digest from test_rsa_pub_sha256.bin", SHA256_DIGEST_LENGTH);
-
- const uint8_t *bb_buffer = parcByteArray_Array(parcBuffer_Array(parcCryptoHash_GetDigest(cert_digest)));
- size_t bb_length = parcBuffer_Remaining(parcCryptoHash_GetDigest(cert_digest));
- assertTrue(bb_length == SHA256_DIGEST_LENGTH,
- "Incorrect digest length returned from GetCertificateDigest: %zu", bb_length);
-
- assertTrue(memcmp(bb_buffer, true_digest, SHA256_DIGEST_LENGTH) == 0, "digests did not match");
-
- parcSigner_Release(&signer);
- parcCryptoHash_Release(&cert_digest);
-}
-
-LONGBOW_TEST_CASE(openssl_commandline, parcPkcs12KeyStore_GetEncodedCertificate)
-{
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open("test_rsa.p12", "blueberry", PARCCryptoHashType_SHA256);
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCPublicKeySigner *PublicKeySigner = parcPublicKeySigner_Create(keyStore, PARCCryptoSuite_RSA_SHA256);
- parcKeyStore_Release(&keyStore);
- PARCSigner *signer = parcSigner_Create(PublicKeySigner, PARCPublicKeySignerAsSigner);
- parcPublicKeySigner_Release(&PublicKeySigner);
-
- assertNotNull(signer, "Got null result from opening openssl pkcs12 file");
-
- PARCBuffer *certificate_der = parcKeyStore_GetDEREncodedCertificate(parcSigner_GetKeyStore(signer));
- assertNotNull(certificate_der, "got null der certificate for external pkcs12");
-
- // read in the "truth" from the command line utilities
-
- int fd = open("test_rsa_crt.der", O_RDONLY);
- uint8_t true_der[1024];
- ssize_t read_bytes = read(fd, true_der, 1024);
- close(fd);
-
- assertTrue(read_bytes == 517,
- "could not read %d byte digest from test_rsa_pub_sha256.bin", 517);
-
- const uint8_t *bb_buffer = parcByteArray_Array(parcBuffer_Array(certificate_der));
- size_t bb_length = parcBuffer_Remaining(certificate_der);
- assertTrue(bb_length == read_bytes,
- "Incorrect digest length returned from GetCertificateDigest: %zu", bb_length);
-
- assertTrue(memcmp(bb_buffer, true_der, read_bytes) == 0, "digests did not match");
-
- parcSigner_Release(&signer);
- parcBuffer_Release(&certificate_der);
-}
-
-/**
- * Gets the DER encoded public key
- */
-LONGBOW_TEST_CASE(openssl_commandline, parcPkcs12KeyStore_GetEncodedPublicKey)
-{
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open("test_rsa.p12", "blueberry", PARCCryptoHashType_SHA256);
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCPublicKeySigner *PublicKeySigner = parcPublicKeySigner_Create(keyStore, PARCCryptoSuite_RSA_SHA256);
- parcKeyStore_Release(&keyStore);
- PARCSigner *signer = parcSigner_Create(PublicKeySigner, PARCPublicKeySignerAsSigner);
- parcPublicKeySigner_Release(&PublicKeySigner);
-
- assertNotNull(signer, "Got null result from opening openssl pkcs12 file");
-
- PARCBuffer *pubkey_der = parcKeyStore_GetDEREncodedPublicKey(parcSigner_GetKeyStore(signer));
- assertNotNull(pubkey_der, "got null public key der for external pkcs12");
-
- // read in the "truth" from the command line utilities
-
- int fd = open("test_rsa_pub.der", O_RDONLY);
- uint8_t true_der[1024];
- ssize_t read_bytes = read(fd, true_der, 1024);
- close(fd);
-
- assertTrue(read_bytes == 162, "could not read %d byte digest from test_rsa_pub_sha256.bin", 162);
-
- const uint8_t *bb_buffer = parcByteArray_Array(parcBuffer_Array(pubkey_der));
- size_t bb_length = parcBuffer_Remaining(pubkey_der);
- assertTrue(bb_length == read_bytes, "Incorrect digest length returned from GetCertificateDigest: %zu", bb_length);
- assertTrue(memcmp(bb_buffer, true_der, read_bytes) == 0, "digests did not match");
-
- parcSigner_Release(&signer);
- parcBuffer_Release(&pubkey_der);
-}
-
-LONGBOW_TEST_CASE(openssl_commandline, parcPkcs12KeyStore_VerifySignature_Cert)
-{
- testUnimplemented("Not Implemented");
-}
-
-int
-main(int argc, char *argv[])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(ccnx_FileKeystore);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_Pkcs12KeyStoreECDSA.c b/libparc/parc/security/test/test_parc_Pkcs12KeyStoreECDSA.c
deleted file mode 100644
index f6b19593..00000000
--- a/libparc/parc/security/test/test_parc_Pkcs12KeyStoreECDSA.c
+++ /dev/null
@@ -1,470 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-/**
- */
-#include <config.h>
-
-#include <LongBow/testing.h>
-
-// Include the file(s) containing the functions to be tested.
-// This permits internal static functions to be visible to this Test Framework.
-#include "../parc_Pkcs12KeyStore.c"
-
-#include <parc/algol/parc_SafeMemory.h>
-#include <parc/security/parc_Security.h>
-#include <parc/security/parc_PublicKeySigner.h>
-
-const char *filename = "/tmp/filekeystore.p12";
-
-LONGBOW_TEST_RUNNER(ccnx_FileKeystore)
-{
- // The following Test Fixtures will run their corresponding Test Cases.
- // Test Fixtures are run in the order specified, but all tests should be idempotent.
- // Never rely on the execution order of tests or share state between them.
- LONGBOW_RUN_TEST_FIXTURE(Global);
- LONGBOW_RUN_TEST_FIXTURE(openssl_commandline);
- LONGBOW_RUN_TEST_FIXTURE(ccnx_internal);
-}
-
-// The Test Runner calls this function once before any Test Fixtures are run.
-LONGBOW_TEST_RUNNER_SETUP(ccnx_FileKeystore)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(ccnx_FileKeystore)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Global)
-{
- LONGBOW_RUN_TEST_CASE(Global, parcPkcs12KeyStore_Open);
- LONGBOW_RUN_TEST_CASE(Global, parcPkcs12KeyStore_badpass);
- LONGBOW_RUN_TEST_CASE(Global, parcPkcs12KeyStore_CreateAndOpen);
- LONGBOW_RUN_TEST_CASE(Global, parcPkcs12KeyStore_CreateFile_Fail);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- parcMemory_SetInterface(&PARCSafeMemoryAsPARCMemory);
- parcSecurity_Init();
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- unlink(filename);
- parcSecurity_Fini();
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Global, parcPkcs12KeyStore_Open)
-{
- // open our test p12 file created with openssl
- parcSecurity_Init();
-
- PARCPkcs12KeyStore *keyStore = parcPkcs12KeyStore_Open("test_ec.p12", "blueberry", PARCCryptoHashType_SHA256);
-
- assertNotNull(keyStore, "Got null result from opening openssl pkcs12 file");
-
- parcPkcs12KeyStore_Release(&keyStore);
- parcSecurity_Fini();
-}
-
-LONGBOW_TEST_CASE(Global, parcPkcs12KeyStore_badpass)
-{
- // open our test p12 file created with openssl
-
- fprintf(stderr, "The next openssl error is expected, we're using the wrong password\n");
- PARCPkcs12KeyStore *keyStore = parcPkcs12KeyStore_Open("test_ec.p12", "orange", PARCCryptoHashType_SHA256);
-
- assertNull(keyStore, "Got null result from opening openssl pkcs12 file");
-}
-
-LONGBOW_TEST_CASE(Global, parcPkcs12KeyStore_CreateAndOpen)
-{
- // create a file and open it
- const char *filename = "/tmp/parcPkcs12KeyStore_CreateAndOpen.p12";
- const char *password = "12345";
- const char *subject = "alice";
- bool result;
-
- result = parcPkcs12KeyStore_CreateFile(filename, password, subject, PARCSigningAlgorithm_ECDSA, 256, 32);
- assertTrue(result, "got error from parcPkcs12KeyStore_CreatePkcs12File");
-
- PARCPkcs12KeyStore *keyStore = parcPkcs12KeyStore_Open(filename, password, PARCCryptoHashType_SHA256);
-
- assertNotNull(keyStore, "Got null result from opening openssl pkcs12 file");
-
- parcPkcs12KeyStore_Release(&keyStore);
- unlink(filename);
-}
-
-LONGBOW_TEST_CASE(Global, parcPkcs12KeyStore_CreateFile_Fail)
-{
- // create a file and open it
- const char *filename = "/tmp/parcPkcs12KeyStore_CreateAndOpen.p12";
- const char *password = "12345";
- const char *subject = "alice";
- bool result;
-
- result = parcPkcs12KeyStore_CreateFile(filename, password, subject, PARCSigningAlgorithm_ECDSA, -1, 32);
- assertFalse(result, "Expected false result from parcPkcs12KeyStore_CreateFile()");
-
- unlink(filename);
-}
-
-
-// =====================================================
-// These are tests based on internally-generated pkcs12
-
-LONGBOW_TEST_FIXTURE(ccnx_internal)
-{
- LONGBOW_RUN_TEST_CASE(ccnx_internal, parcPkcs12KeyStore_GetCertificateDigest);
- LONGBOW_RUN_TEST_CASE(ccnx_internal, parcPkcs12KeyStore_GetPublicKeyDigest);
- LONGBOW_RUN_TEST_CASE(ccnx_internal, parcPkcs12KeyStore_GetEncodedCertificate);
- LONGBOW_RUN_TEST_CASE(ccnx_internal, parcPkcs12KeyStore_GetEncodedPublicKey);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(ccnx_internal)
-{
- parcSecurity_Init();
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(ccnx_internal)
-{
- unlink(filename);
- parcSecurity_Fini();
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(ccnx_internal, parcPkcs12KeyStore_GetCertificateDigest)
-{
- // create a file and open it
- const char *password = "12345";
- const char *subject = "alice";
- bool result;
-
- result = parcPkcs12KeyStore_CreateFile(filename, password, subject, PARCSigningAlgorithm_ECDSA, 256, 32);
- assertTrue(result, "got error from parcPkcs12KeyStore_CreatePkcs12File");
-
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open(filename, password, PARCCryptoHashType_SHA256);
- assertNotNull(publicKeyStore, "Got null result from opening openssl pkcs12 file");
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCCryptoHash *cert_digest = parcKeyStore_GetCertificateDigest(keyStore);
- assertNotNull(cert_digest, "got null public key digest for external pkcs12");
-
- size_t bb_length = parcBuffer_Remaining(parcCryptoHash_GetDigest(cert_digest));
- assertTrue(bb_length == SHA256_DIGEST_LENGTH,
- "Incorrect digest length returned from GetPublicKeyDigest: %zu", bb_length);
-
- parcKeyStore_Release(&keyStore);
- parcCryptoHash_Release(&cert_digest);
-}
-
-/**
- * Use a ccnx-generated pkcs12 file
- */
-LONGBOW_TEST_CASE(ccnx_internal, parcPkcs12KeyStore_GetPublicKeyDigest)
-{
- // create a file and open it
- const char *password = "12345";
- const char *subject = "alice";
- bool result;
-
- result = parcPkcs12KeyStore_CreateFile(filename, password, subject, PARCSigningAlgorithm_ECDSA, 256, 32);
- assertTrue(result, "got error from parcPkcs12KeyStore_CreatePkcs12File");
-
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open(filename, password, PARCCryptoHashType_SHA256);
- assertNotNull(publicKeyStore, "Got null result from opening openssl pkcs12 file");
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCCryptoHash *pkd = parcKeyStore_GetVerifierKeyDigest(keyStore);
- assertNotNull(pkd, "got null public key digest for external pkcs12");
-
- size_t bb_length = parcBuffer_Remaining(parcCryptoHash_GetDigest(pkd));
- assertTrue(bb_length == SHA256_DIGEST_LENGTH, "Incorrect digest length returned from GetPublicKeyDigest: %zu", bb_length);
-
- parcKeyStore_Release(&keyStore);
- parcCryptoHash_Release(&pkd);
-}
-
-
-LONGBOW_TEST_CASE(ccnx_internal, parcPkcs12KeyStore_GetEncodedCertificate)
-{
- // create a file and open it
- const char *password = "12345";
- const char *subject = "alice";
- bool result;
-
- result = parcPkcs12KeyStore_CreateFile(filename, password, subject, PARCSigningAlgorithm_ECDSA, 256, 32);
- assertTrue(result, "got error from parcPkcs12KeyStore_CreatePkcs12File");
-
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open(filename, password, PARCCryptoHashType_SHA256);
- assertNotNull(publicKeyStore, "Got null result from opening openssl pkcs12 file");
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCBuffer *certificate_der = parcKeyStore_GetDEREncodedCertificate(keyStore);
- assertNotNull(certificate_der, "got null public key digest for external pkcs12");
-
- // 557 (64-bit) and 553 (32-bit) are pre-etermined sizes of how big a DER encoded
- // certificate with a 1024-bit key should be
- size_t expectedMinimumLength = 400;
- size_t expectedMaximumLength = 560;
- size_t bb_length = parcBuffer_Remaining(certificate_der);
- assertTrue(expectedMinimumLength <= bb_length && bb_length <= expectedMaximumLength,
- "Digest unexpected size: got %zu expected %zu - %zu", bb_length, expectedMinimumLength, expectedMaximumLength);
-
- parcKeyStore_Release(&keyStore);
- parcBuffer_Release(&certificate_der);
-}
-
-LONGBOW_TEST_CASE(ccnx_internal, parcPkcs12KeyStore_GetEncodedPublicKey)
-{
- // create a file and open it
- const char *password = "12345";
- const char *subject = "alice";
- bool result;
-
- result = parcPkcs12KeyStore_CreateFile(filename, password, subject, PARCSigningAlgorithm_ECDSA, 256, 32);
- assertTrue(result, "got error from parcPkcs12KeyStore_CreatePkcs12File");
-
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open(filename, password, PARCCryptoHashType_SHA256);
- assertNotNull(publicKeyStore, "Got null result from opening openssl pkcs12 file");
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCBuffer *pubkey_der = parcKeyStore_GetDEREncodedPublicKey(keyStore);
- assertNotNull(pubkey_der, "got null public key digest for external pkcs12");
-
- size_t bb_length = parcBuffer_Remaining(pubkey_der);
- //assertTrue(bb_length == 162, "Incorrect digest length returned from GetPublicKeyDigest: %zu", bb_length);
-
- parcKeyStore_Release(&keyStore);
- parcBuffer_Release(&pubkey_der);
-}
-
-// =====================================================
-// These are tests based on pre-generated material from the openssl command line
-
-LONGBOW_TEST_FIXTURE(openssl_commandline)
-{
- LONGBOW_RUN_TEST_CASE(openssl_commandline, parcPkcs12KeyStore_GetCertificateDigest);
- LONGBOW_RUN_TEST_CASE(openssl_commandline, parcPkcs12KeyStore_GetPublicKeyDigest);
- LONGBOW_RUN_TEST_CASE(openssl_commandline, parcPkcs12KeyStore_GetEncodedCertificate);
- LONGBOW_RUN_TEST_CASE(openssl_commandline, parcPkcs12KeyStore_GetEncodedPublicKey);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(openssl_commandline)
-{
- parcSecurity_Init();
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(openssl_commandline)
-{
- unlink(filename);
- parcSecurity_Fini();
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-/**
- * read in the openssl command-line generated pkcs12 file
- */
-LONGBOW_TEST_CASE(openssl_commandline, parcPkcs12KeyStore_GetPublicKeyDigest)
-{
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open("test_ec.p12", "blueberry", PARCCryptoHashType_SHA256);
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCPublicKeySigner *ecSigner = parcPublicKeySigner_Create(keyStore, PARCCryptoSuite_ECDSA_SHA256);
- parcKeyStore_Release(&keyStore);
- PARCSigner *signer = parcSigner_Create(ecSigner, PARCPublicKeySignerAsSigner);
- parcPublicKeySigner_Release(&ecSigner);
-
- assertNotNull(signer, "parcPkcs12KeyStore_Open(\"test_ec.p12\", \"blueberry\", PARCCryptoHashType_SHA256) returned NULL");
-
- PARCCryptoHash *pkd = parcKeyStore_GetVerifierKeyDigest(parcSigner_GetKeyStore(signer));
- assertNotNull(pkd, "got null public key digest for external pkcs12");
-
- // read in the "truth" from the command line utilities
-
- int fd = open("test_ec_pub_sha256.bin", O_RDONLY);
- uint8_t true_digest[SHA256_DIGEST_LENGTH];
- ssize_t read_bytes = read(fd, true_digest, SHA256_DIGEST_LENGTH);
- close(fd);
-
- assertTrue(read_bytes == SHA256_DIGEST_LENGTH, "could not read %d byte digest from test_ec_pub_sha256.bin", SHA256_DIGEST_LENGTH);
-
- PARCBuffer *digest = parcCryptoHash_GetDigest(pkd);
- const uint8_t *bb_buffer = parcByteArray_Array(parcBuffer_Array(digest));
- size_t bb_length = parcBuffer_Remaining(digest);
- assertTrue(bb_length == SHA256_DIGEST_LENGTH,
- "Incorrect digest length returned from GetPublicKeyDigest: %zu", bb_length);
-
- assertTrue(memcmp(bb_buffer, true_digest, SHA256_DIGEST_LENGTH) == 0, "digests did not match");
-
-
- parcSigner_Release(&signer);
- parcCryptoHash_Release(&pkd);
-}
-
-/**
- * Get the certificate digest from the openssl command line pkcs12
- */
-LONGBOW_TEST_CASE(openssl_commandline, parcPkcs12KeyStore_GetCertificateDigest)
-{
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open("test_ec.p12", "blueberry", PARCCryptoHashType_SHA256);
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCPublicKeySigner *ecSigner = parcPublicKeySigner_Create(keyStore, PARCCryptoSuite_ECDSA_SHA256);
- parcKeyStore_Release(&keyStore);
- PARCSigner *signer = parcSigner_Create(ecSigner, PARCPublicKeySignerAsSigner);
- parcPublicKeySigner_Release(&ecSigner);
-
- assertNotNull(signer, "Got null result from opening openssl pkcs12 file");
-
- PARCCryptoHash *cert_digest = parcKeyStore_GetCertificateDigest(parcSigner_GetKeyStore(signer));
- assertNotNull(cert_digest, "got null public key digest for external pkcs12");
-
- // read in the "truth" from the command line utilities
-
- int fd = open("test_ec_crt_sha256.bin", O_RDONLY);
- uint8_t true_digest[SHA256_DIGEST_LENGTH];
- ssize_t read_bytes = read(fd, true_digest, SHA256_DIGEST_LENGTH);
- close(fd);
-
- assertTrue(read_bytes == SHA256_DIGEST_LENGTH, "could not read %d byte digest from test_ec_pub_sha256.bin", SHA256_DIGEST_LENGTH);
-
- const uint8_t *bb_buffer = parcByteArray_Array(parcBuffer_Array(parcCryptoHash_GetDigest(cert_digest)));
- size_t bb_length = parcBuffer_Remaining(parcCryptoHash_GetDigest(cert_digest));
- assertTrue(bb_length == SHA256_DIGEST_LENGTH,
- "Incorrect digest length returned from GetCertificateDigest: %zu", bb_length);
-
- assertTrue(memcmp(bb_buffer, true_digest, SHA256_DIGEST_LENGTH) == 0, "digests did not match");
-
- parcSigner_Release(&signer);
- parcCryptoHash_Release(&cert_digest);
-}
-
-LONGBOW_TEST_CASE(openssl_commandline, parcPkcs12KeyStore_GetEncodedCertificate)
-{
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open("test_ec.p12", "blueberry", PARCCryptoHashType_SHA256);
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCPublicKeySigner *ecSigner = parcPublicKeySigner_Create(keyStore, PARCCryptoSuite_ECDSA_SHA256);
- parcKeyStore_Release(&keyStore);
- PARCSigner *signer = parcSigner_Create(ecSigner, PARCPublicKeySignerAsSigner);
- parcPublicKeySigner_Release(&ecSigner);
-
- assertNotNull(signer, "Got null result from opening openssl pkcs12 file");
-
- PARCBuffer *certificate_der = parcKeyStore_GetDEREncodedCertificate(parcSigner_GetKeyStore(signer));
- assertNotNull(certificate_der, "got null der certificate for external pkcs12");
-
- // read in the "truth" from the command line utilities
-
- int fd = open("test_ec_crt.der", O_RDONLY);
- uint8_t true_der[1024];
- ssize_t read_bytes = read(fd, true_der, 1024);
- close(fd);
-
- // assertTrue(read_bytes == 517,
- // "could not read %d byte digest from test_ec_pub_sha256.bin", 517);
-
- const uint8_t *bb_buffer = parcByteArray_Array(parcBuffer_Array(certificate_der));
- size_t bb_length = parcBuffer_Remaining(certificate_der);
- assertTrue(bb_length == read_bytes,
- "Incorrect digest length returned from GetCertificateDigest: %zu", bb_length);
-
- assertTrue(memcmp(bb_buffer, true_der, read_bytes) == 0, "digests did not match");
-
- parcSigner_Release(&signer);
- parcBuffer_Release(&certificate_der);
-}
-
-/**
- * Gets the DER encoded public key
- */
-LONGBOW_TEST_CASE(openssl_commandline, parcPkcs12KeyStore_GetEncodedPublicKey)
-{
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open("test_ec.p12", "blueberry", PARCCryptoHashType_SHA256);
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCPublicKeySigner *ecSigner = parcPublicKeySigner_Create(keyStore, PARCCryptoSuite_ECDSA_SHA256);
- parcKeyStore_Release(&keyStore);
- PARCSigner *signer = parcSigner_Create(ecSigner, PARCPublicKeySignerAsSigner);
- parcPublicKeySigner_Release(&ecSigner);
-
- assertNotNull(signer, "Got null result from opening openssl pkcs12 file");
-
- PARCBuffer *pubkey_der = parcKeyStore_GetDEREncodedPublicKey(parcSigner_GetKeyStore(signer));
- assertNotNull(pubkey_der, "got null public key der for external pkcs12");
-
- // read in the "truth" from the command line utilities
-
- int fd = open("test_ec_pub.der", O_RDONLY);
- uint8_t true_der[1024];
- ssize_t read_bytes = read(fd, true_der, 1024);
- close(fd);
-
- //assertTrue(read_bytes == 162, "could not read %d byte digest from test_ec_pub_sha256.bin", 162);
-
- const uint8_t *bb_buffer = parcByteArray_Array(parcBuffer_Array(pubkey_der));
- size_t bb_length = parcBuffer_Remaining(pubkey_der);
- assertTrue(bb_length == read_bytes, "Incorrect digest length returned from GetCertificateDigest: %zu", bb_length);
- assertTrue(memcmp(bb_buffer, true_der, read_bytes) == 0, "digests did not match");
-
- parcSigner_Release(&signer);
- parcBuffer_Release(&pubkey_der);
-}
-
-LONGBOW_TEST_CASE(openssl_commandline, parcPkcs12KeyStore_VerifySignature_Cert)
-{
- testUnimplemented("Not Implemented");
-}
-
-int
-main(int argc, char *argv[])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(ccnx_FileKeystore);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_PublicKeyECSigner.c b/libparc/parc/security/test/test_parc_PublicKeyECSigner.c
deleted file mode 100644
index 90ab1755..00000000
--- a/libparc/parc/security/test/test_parc_PublicKeyECSigner.c
+++ /dev/null
@@ -1,507 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- */
-#include "../parc_PublicKeySigner.c"
-#include "../parc_InMemoryVerifier.c"
-#include <sys/param.h>
-
-#include <fcntl.h>
-
-#include <LongBow/testing.h>
-#include <LongBow/debugging.h>
-
-#include <parc/algol/parc_Memory.h>
-#include <parc/algol/parc_SafeMemory.h>
-
-#include <parc/testing/parc_MemoryTesting.h>
-#include <parc/testing/parc_ObjectTesting.h>
-
-#include <parc/security/parc_Pkcs12KeyStore.h>
-#include <parc/security/parc_PublicKeySigner.h>
-
-typedef struct test_data {
- PARCSigner *signer;
- PARCInMemoryVerifier *inMemoryInterface;
-} TestData;
-
-
-LONGBOW_TEST_RUNNER(parc_PublicKeySigner)
-{
- // The following Test Fixtures will run their corresponding Test Cases.
- // Test Fixtures are run in the order specified, but all tests should be idempotent.
- // Never rely on the execution order of tests or share state between them.
- LONGBOW_RUN_TEST_FIXTURE(CreateAcquireRelease);
- LONGBOW_RUN_TEST_FIXTURE(Object);
- LONGBOW_RUN_TEST_FIXTURE(Specialization);
-}
-
-// The Test Runner calls this function once before any Test Fixtures are run.
-LONGBOW_TEST_RUNNER_SETUP(parc_PublicKeySigner)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(parc_PublicKeySigner)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(CreateAcquireRelease)
-{
- LONGBOW_RUN_TEST_CASE(CreateAcquireRelease, CreateRelease);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(CreateAcquireRelease)
-{
- parcMemory_SetInterface(&PARCSafeMemoryAsPARCMemory);
- parcSecurity_Init();
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(CreateAcquireRelease)
-{
- parcSecurity_Fini();
- if (!parcMemoryTesting_ExpectedOutstanding(0, "%s leaked memory.", longBowTestCase_GetFullName(testCase))) {
- return LONGBOW_STATUS_MEMORYLEAK;
- }
-
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(CreateAcquireRelease, CreateRelease)
-{
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open("test_ec.p12", "blueberry", PARCCryptoHashType_SHA256);
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCPublicKeySigner *instance = parcPublicKeySigner_Create(keyStore, PARCCryptoSuite_ECDSA_SHA256);
- parcKeyStore_Release(&keyStore);
- assertNotNull(instance, "Expected non-null result from parcPublicKeySigner_Create();");
-
- parcObjectTesting_AssertAcquireReleaseContract(parcPublicKeySigner_Acquire, instance);
-
- parcPublicKeySigner_Release(&instance);
- assertNull(instance, "Expected null result from parcPublicKeySigner_Release();");
-}
-
-LONGBOW_TEST_FIXTURE(Object)
-{
- LONGBOW_RUN_TEST_CASE(Object, parcPublicKeySigner_Equals);
- LONGBOW_RUN_TEST_CASE(Object, parcPublicKeySigner_HashCode);
- LONGBOW_RUN_TEST_CASE(Object, parcPublicKeySigner_IsValid);
- LONGBOW_RUN_TEST_CASE(Object, parcPublicKeySigner_ToString);
- LONGBOW_RUN_TEST_CASE(Object, parcPublicKeySigner_SignatureSize);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Object)
-{
- parcSecurity_Init();
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Object)
-{
- parcSecurity_Fini();
- if (!parcMemoryTesting_ExpectedOutstanding(0, "%s mismanaged memory.", longBowTestCase_GetFullName(testCase))) {
- return LONGBOW_STATUS_MEMORYLEAK;
- }
-
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-static PARCPublicKeySigner *
-_createSigner(char *path)
-{
- char dirname[] = "/tmp/pubkeystore_XXXXXX";
- char filename[MAXPATHLEN];
-
- char *temporaryDirectory = mkdtemp(dirname);
- assertNotNull(temporaryDirectory, "tmp_dirname should not be null");
- sprintf(filename, "%s/%s", temporaryDirectory, path);
-
- parcPkcs12KeyStore_CreateFile(filename, "blueberry", "person", PARCSigningAlgorithm_ECDSA, 256, 365);
- PARCPkcs12KeyStore *keyStore = parcPkcs12KeyStore_Open(filename, "blueberry", PARCCryptoHashType_SHA256);
- PARCKeyStore *publicKeyStore = parcKeyStore_Create(keyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&keyStore);
- PARCPublicKeySigner *pksigner = parcPublicKeySigner_Create(publicKeyStore, PARCCryptoSuite_ECDSA_SHA256);
- parcKeyStore_Release(&publicKeyStore);
-
- return pksigner;
-}
-
-LONGBOW_TEST_CASE(Object, parcPublicKeySigner_Equals)
-{
- PARCPublicKeySigner *x = _createSigner("bananasA");
- PARCPublicKeySigner *y = _createSigner("bananasB");
- PARCPublicKeySigner *z = _createSigner("bananasC");
-
- parcObjectTesting_AssertEquals(x, y, z, NULL);
-
- parcPublicKeySigner_Release(&x);
- parcPublicKeySigner_Release(&y);
- parcPublicKeySigner_Release(&z);
-}
-
-LONGBOW_TEST_CASE(Object, parcPublicKeySigner_HashCode)
-{
- PARCPublicKeySigner *x = _createSigner("bananasX");
- PARCPublicKeySigner *y = _createSigner("bananasY");
-
- parcObjectTesting_AssertHashCode(x, y);
-
- parcPublicKeySigner_Release(&x);
- parcPublicKeySigner_Release(&y);
-}
-
-LONGBOW_TEST_CASE(Object, parcPublicKeySigner_IsValid)
-{
- PARCPublicKeySigner *instance = _createSigner("bananas");
- assertTrue(parcPublicKeySigner_IsValid(instance), "Expected parcPublicKeySigner_Create to result in a valid instance.");
-
- parcPublicKeySigner_Release(&instance);
- assertFalse(parcPublicKeySigner_IsValid(instance), "Expected parcPublicKeySigner_Release to result in an invalid instance.");
-}
-
-LONGBOW_TEST_CASE(Object, parcPublicKeySigner_ToString)
-{
- PARCPublicKeySigner *instance = _createSigner("bananas");
-
- char *string = parcPublicKeySigner_ToString(instance);
-
- assertNotNull(string, "Expected non-NULL result from parcPublicKeySigner_ToString");
-
- parcMemory_Deallocate((void **) &string);
- parcPublicKeySigner_Release(&instance);
-}
-
-LONGBOW_TEST_FIXTURE(Specialization)
-{
- LONGBOW_RUN_TEST_CASE(Specialization, parcPkcs12KeyStore_VerifySignature_Cert);
- LONGBOW_RUN_TEST_CASE(Specialization, parcPkcs12KeyStore_SignBuffer);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Specialization)
-{
- parcMemory_SetInterface(&PARCSafeMemoryAsPARCMemory);
- parcSecurity_Init();
-
- TestData *data = parcMemory_AllocateAndClear(sizeof(TestData));
- assertNotNull(data, "parcMemory_AllocateAndClear(%zu) returned NULL", sizeof(TestData));
-
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open("test_ec.p12", "blueberry", PARCCryptoHashType_SHA256);
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCPublicKeySigner *ecSigner = parcPublicKeySigner_Create(keyStore, PARCCryptoSuite_ECDSA_SHA256);
- parcKeyStore_Release(&keyStore);
-
- data->signer = parcSigner_Create(ecSigner, PARCPublicKeySignerAsSigner);
- parcPublicKeySigner_Release(&ecSigner);
- assertNotNull(data->signer, "Got null result from opening openssl pkcs12 file");
-
- data->inMemoryInterface = parcInMemoryVerifier_Create();
-
- longBowTestCase_SetClipBoardData(testCase, data);
-
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Specialization)
-{
- TestData *data = longBowTestCase_GetClipBoardData(testCase);
-
- parcInMemoryVerifier_Release(&data->inMemoryInterface);
- parcSigner_Release(&data->signer);
- parcMemory_Deallocate((void **) &data);
-
- parcSecurity_Fini();
-
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
-
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Specialization, parcPkcs12KeyStore_VerifySignature_Cert)
-{
-}
-
-/**
- * Sign the file "test_rsa_pub_sha256.bin" using the test_rsa.p12 private key.
- */
-LONGBOW_TEST_CASE(Specialization, parcPkcs12KeyStore_SignBuffer)
-{
- TestData *data = longBowTestCase_GetClipBoardData(testCase);
-
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open("test_ec.p12", "blueberry", PARCCryptoHashType_SHA256);
- assertNotNull(publicKeyStore, "Got null result from opening openssl pkcs12 file");
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCPublicKeySigner *ecSigner = parcPublicKeySigner_Create(keyStore, PARCCryptoSuite_ECDSA_SHA256);
- parcKeyStore_Release(&keyStore);
- PARCSigner *signer = parcSigner_Create(ecSigner, PARCPublicKeySignerAsSigner);
- parcPublicKeySigner_Release(&ecSigner);
-
- PARCKey *key = parcSigner_CreatePublicKey(data->signer);
- _parcInMemoryVerifier_AddKey(data->inMemoryInterface, key);
-
- assertNotNull(signer, "Got null result from opening openssl pkcs12 file");
-
- // read the buffer to sign
- int fd = open("test_random_bytes", O_RDONLY);
- assertTrue(fd != -1, "Cannot open test_random_bytes file.");
- uint8_t buffer_to_sign[2048];
- ssize_t read_bytes = read(fd, buffer_to_sign, 2048);
- close(fd);
-
- assertTrue(read_bytes > 0,
- "Buffer to sign null: %zu",
- read_bytes);
-
- // Digest it
- PARCCryptoHasher *digester = parcSigner_GetCryptoHasher(signer);
- parcCryptoHasher_Init(digester);
- parcCryptoHasher_UpdateBytes(digester, buffer_to_sign, read_bytes);
- PARCCryptoHash *parcDigest = parcCryptoHasher_Finalize(digester);
-
- assertTrue(parcBuffer_Remaining(parcCryptoHash_GetDigest(parcDigest)) >0,
- "Incorrect signaturedigest size: %zu",
- parcBuffer_Remaining(parcCryptoHash_GetDigest(parcDigest)));
-
-
- PARCSignature *bb_test_sign = parcSigner_SignDigest(signer, parcDigest);
-
- assertNotNull(bb_test_sign, "Got null byte buffer from SignBuffer");
- assertTrue(parcBuffer_Remaining(parcSignature_GetSignature(bb_test_sign)) <= 72,
- "Incorrect signature size: %zu",
- parcBuffer_Remaining(parcSignature_GetSignature(bb_test_sign)));
-
- bool success = _parcInMemoryVerifier_VerifyDigest(data->inMemoryInterface, parcKey_GetKeyId(key), parcDigest, PARCCryptoSuite_ECDSA_SHA256, bb_test_sign);
-
- parcSigner_Release(&signer);
- parcSignature_Release(&bb_test_sign);
- parcCryptoHash_Release(&parcDigest);
- parcKey_Release(&key);
-
- assertTrue(success, "signatures did not match");
-}
-
-LONGBOW_TEST_CASE(Global, parcSigner_GetCertificateDigest)
-{
- char dirname[] = "pubkeystore_XXXXXX";
- char filename[MAXPATHLEN];
- const char *password = "flumox";
- unsigned key_bits = 256;
- unsigned valid_days = 30;
-
- const char to_sign[] = "it was a dark and stormy night, and all through the house not a digest was creeping";
-
- char *tmp_dirname = mkdtemp(dirname);
- assertNotNull(tmp_dirname, "tmp_dirname should not be null");
- sprintf(filename, "%s/pubkeystore.p12", tmp_dirname);
-
- // create the file
- parcPkcs12KeyStore_CreateFile(filename, password, "alice", PARCSigningAlgorithm_ECDSA, key_bits, valid_days);
-
- // open it as an RSA provider for the signer
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open(filename, password, PARCCryptoHashType_SHA256);
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCPublicKeySigner *ecSigner = parcPublicKeySigner_Create(keyStore, PARCCryptoSuite_ECDSA_SHA256);
- PARCSigner *signer = parcSigner_Create(ecSigner, PARCPublicKeySignerAsSigner);
- parcPublicKeySigner_Release(&ecSigner);
-
- PARCCryptoHasher *hasher = parcSigner_GetCryptoHasher(signer);
- parcCryptoHasher_Init(hasher);
- parcCryptoHasher_UpdateBytes(hasher, to_sign, sizeof(to_sign));
- PARCCryptoHash *hash = parcCryptoHasher_Finalize(hasher);
- PARCSignature *sig = parcSigner_SignDigest(signer, hash);
-
- unlink(filename);
- int rc = rmdir(tmp_dirname);
- assertTrue(rc == 0, "directory cleanup failed");
-
- char *s = parcSignature_ToString(sig);
- printf("Signature: %s\n", s);
- parcMemory_Deallocate((void **) &s);
-
- PARCCryptoHash *certDigest = parcKeyStore_GetCertificateDigest(parcSigner_GetKeyStore(signer));
- assertNotNull(certDigest, "Expected a non NULL value");
- parcCryptoHash_Release(&certDigest);
-
- parcKeyStore_Release(&keyStore);
- parcCryptoHash_Release(&hash);
- parcSignature_Release(&sig);
- parcSigner_Release(&signer);
-}
-
-LONGBOW_TEST_CASE(Global, parcSigner_GetDEREncodedCertificate)
-{
- char dirname[] = "pubkeystore_XXXXXX";
- char filename[MAXPATHLEN];
- const char *password = "flumox";
- unsigned key_bits = 256;
- unsigned valid_days = 30;
-
- const char to_sign[] = "it was a dark and stormy night, and all through the house not a digest was creeping";
-
- char *tmp_dirname = mkdtemp(dirname);
- assertNotNull(tmp_dirname, "tmp_dirname should not be null");
- sprintf(filename, "%s/pubkeystore.p12", tmp_dirname);
-
- // create the file
- parcPkcs12KeyStore_CreateFile(filename, password, "alice", PARCSigningAlgorithm_ECDSA, key_bits, valid_days);
-
- // open it as an RSA provider for the signer
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open(filename, password, PARCCryptoHashType_SHA256);
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCPublicKeySigner *ecSigner = parcPublicKeySigner_Create(keyStore, PARCCryptoSuite_ECDSA_SHA256);
- PARCSigner *signer = parcSigner_Create(ecSigner, PARCPublicKeySignerAsSigner);
- parcPublicKeySigner_Release(&ecSigner);
-
- PARCCryptoHasher *hasher = parcSigner_GetCryptoHasher(signer);
- parcCryptoHasher_Init(hasher);
- parcCryptoHasher_UpdateBytes(hasher, to_sign, sizeof(to_sign));
- PARCCryptoHash *hash = parcCryptoHasher_Finalize(hasher);
- PARCSignature *sig = parcSigner_SignDigest(signer, hash);
-
- unlink(filename);
- int rc = rmdir(tmp_dirname);
- assertTrue(rc == 0, "directory cleanup failed");
-
- char *s = parcSignature_ToString(sig);
- printf("Signature: %s\n", s);
- parcMemory_Deallocate((void **) &s);
-
- PARCBuffer *certificate_der = parcKeyStore_GetDEREncodedCertificate(parcSigner_GetKeyStore(signer));
- assertNotNull(certificate_der, "Expected a non NULL value");
- parcBuffer_Release(&certificate_der);
-
- parcKeyStore_Release(&keyStore);
- parcCryptoHash_Release(&hash);
- parcSignature_Release(&sig);
- parcSigner_Release(&signer);
-}
-
-LONGBOW_TEST_CASE(Global, parcSigner_CreatePublicKey)
-{
- char dirname[] = "pubkeystore_XXXXXX";
- char filename[MAXPATHLEN];
- const char *password = "flumox";
- unsigned key_bits = 256;
- unsigned valid_days = 30;
-
- char *tmp_dirname = mkdtemp(dirname);
- assertNotNull(tmp_dirname, "tmp_dirname should not be null");
- sprintf(filename, "%s/pubkeystore.p12", tmp_dirname);
-
- // create the file
- parcPkcs12KeyStore_CreateFile(filename, password, "alice", PARCSigningAlgorithm_ECDSA, key_bits, valid_days);
-
- // open it as an RSA provider for the signer
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open(filename, password, PARCCryptoHashType_SHA256);
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCPublicKeySigner *ecSigner = parcPublicKeySigner_Create(keyStore, PARCCryptoSuite_ECDSA_SHA256);
- PARCSigner *signer = parcSigner_Create(ecSigner, PARCPublicKeySignerAsSigner);
- parcPublicKeySigner_Release(&ecSigner);
-
- PARCKey *key = parcSigner_CreatePublicKey(signer);
- assertNotNull(key, "Expected a non NULL value");
- parcKey_Release(&key);
- parcKeyStore_Release(&keyStore);
-
- parcSigner_Release(&signer);
-}
-
-LONGBOW_TEST_CASE(Global, parcSigner_CreateKeyId)
-{
- char dirname[] = "pubkeystore_XXXXXX";
- char filename[MAXPATHLEN];
- const char *password = "flumox";
- unsigned key_bits = 256;
- unsigned valid_days = 30;
-
- const char to_sign[] = "it was a dark and stormy night, and all through the house not a digest was creeping";
-
- char *tmp_dirname = mkdtemp(dirname);
- assertNotNull(tmp_dirname, "tmp_dirname should not be null");
- sprintf(filename, "%s/pubkeystore.p12", tmp_dirname);
-
- // create the file
- parcPkcs12KeyStore_CreateFile(filename, password, "alice", PARCSigningAlgorithm_ECDSA, key_bits, valid_days);
-
- // open it as an RSA provider for the signer
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open(filename, password, PARCCryptoHashType_SHA256);
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCPublicKeySigner *ecSigner = parcPublicKeySigner_Create(keyStore, PARCCryptoSuite_ECDSA_SHA256);
- PARCSigner *signer = parcSigner_Create(ecSigner, PARCPublicKeySignerAsSigner);
- parcPublicKeySigner_Release(&ecSigner);
-
- PARCCryptoHasher *hasher = parcSigner_GetCryptoHasher(signer);
- parcCryptoHasher_Init(hasher);
- parcCryptoHasher_UpdateBytes(hasher, to_sign, sizeof(to_sign));
- PARCCryptoHash *hash = parcCryptoHasher_Finalize(hasher);
- PARCSignature *sig = parcSigner_SignDigest(signer, hash);
-
- unlink(filename);
- int rc = rmdir(tmp_dirname);
- assertTrue(rc == 0, "directory cleanup failed");
-
- char *s = parcSignature_ToString(sig);
- printf("Signature: %s\n", s);
- parcMemory_Deallocate((void **) &s);
-
- PARCKeyId *keyId = parcSigner_CreateKeyId(signer);
- assertNotNull(keyId, "Expected a non NULL value");
- parcKeyId_Release(&keyId);
-
- parcKeyStore_Release(&keyStore);
- parcCryptoHash_Release(&hash);
- parcSignature_Release(&sig);
- parcSigner_Release(&signer);
-}
-
-LONGBOW_TEST_CASE(Object, parcPublicKeySigner_SignatureSize)
-{
- PARCPublicKeySigner *publicKeySigner = _createSigner("test_key_size");
- PARCSigner *signer = parcSigner_Create(publicKeySigner, PARCPublicKeySignerAsSigner);
-
- assertTrue(parcSigner_GetSignatureSize(signer) == 72, "Key size unexpected %lu ", parcSigner_GetSignatureSize(signer));
- parcPublicKeySigner_Release(&publicKeySigner);
- parcSigner_Release(&signer);
-}
-
-
-int
-main(int argc, char *argv[argc])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(parc_PublicKeySigner);
- int exitStatus = longBowMain(argc, argv, testRunner, NULL);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_PublicKeySigner.c b/libparc/parc/security/test/test_parc_PublicKeySigner.c
deleted file mode 100644
index 69fb7049..00000000
--- a/libparc/parc/security/test/test_parc_PublicKeySigner.c
+++ /dev/null
@@ -1,466 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- */
-#include "../parc_PublicKeySigner.c"
-#include <sys/param.h>
-
-#include <fcntl.h>
-
-#include <LongBow/testing.h>
-#include <LongBow/debugging.h>
-
-#include <parc/algol/parc_Memory.h>
-#include <parc/algol/parc_SafeMemory.h>
-
-#include <parc/testing/parc_MemoryTesting.h>
-#include <parc/testing/parc_ObjectTesting.h>
-
-#include <parc/security/parc_Pkcs12KeyStore.h>
-
-LONGBOW_TEST_RUNNER(parc_PublicKeySigner)
-{
- // The following Test Fixtures will run their corresponding Test Cases.
- // Test Fixtures are run in the order specified, but all tests should be idempotent.
- // Never rely on the execution order of tests or share state between them.
- LONGBOW_RUN_TEST_FIXTURE(CreateAcquireRelease);
- LONGBOW_RUN_TEST_FIXTURE(Object);
- LONGBOW_RUN_TEST_FIXTURE(Specialization);
-}
-
-// The Test Runner calls this function once before any Test Fixtures are run.
-LONGBOW_TEST_RUNNER_SETUP(parc_PublicKeySigner)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(parc_PublicKeySigner)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(CreateAcquireRelease)
-{
- LONGBOW_RUN_TEST_CASE(CreateAcquireRelease, CreateRelease);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(CreateAcquireRelease)
-{
- parcMemory_SetInterface(&PARCSafeMemoryAsPARCMemory);
- parcSecurity_Init();
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(CreateAcquireRelease)
-{
- parcSecurity_Fini();
- if (!parcMemoryTesting_ExpectedOutstanding(0, "%s leaked memory.", longBowTestCase_GetFullName(testCase))) {
- return LONGBOW_STATUS_MEMORYLEAK;
- }
-
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(CreateAcquireRelease, CreateRelease)
-{
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open("test_rsa.p12", "blueberry", PARCCryptoHashType_SHA256);
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCPublicKeySigner *instance = parcPublicKeySigner_Create(keyStore, PARCCryptoSuite_RSA_SHA256);
- parcKeyStore_Release(&keyStore);
- assertNotNull(instance, "Expected non-null result from parcPublicKeySigner_Create();");
-
- parcObjectTesting_AssertAcquireReleaseContract(parcPublicKeySigner_Acquire, instance);
-
- parcPublicKeySigner_Release(&instance);
- assertNull(instance, "Expected null result from parcPublicKeySigner_Release();");
-}
-
-LONGBOW_TEST_FIXTURE(Object)
-{
- LONGBOW_RUN_TEST_CASE(Object, parcPublicKeySigner_Equals);
- LONGBOW_RUN_TEST_CASE(Object, parcPublicKeySigner_HashCode);
- LONGBOW_RUN_TEST_CASE(Object, parcPublicKeySigner_IsValid);
- LONGBOW_RUN_TEST_CASE(Object, parcPublicKeySigner_ToString);
- LONGBOW_RUN_TEST_CASE(Object, parcPublicKeySigner_SignatureSize);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Object)
-{
- parcSecurity_Init();
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Object)
-{
- parcSecurity_Fini();
- if (!parcMemoryTesting_ExpectedOutstanding(0, "%s mismanaged memory.", longBowTestCase_GetFullName(testCase))) {
- return LONGBOW_STATUS_MEMORYLEAK;
- }
-
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-static PARCPublicKeySigner *
-_createSigner(char *path)
-{
- char dirname[] = "/tmp/pubkeystore_XXXXXX";
- char filename[MAXPATHLEN];
-
- char *temporaryDirectory = mkdtemp(dirname);
- assertNotNull(temporaryDirectory, "tmp_dirname should not be null");
- sprintf(filename, "%s/%s", temporaryDirectory, path);
-
- parcPkcs12KeyStore_CreateFile(filename, "blueberry", "person", PARCSigningAlgorithm_RSA, 1024, 365);
- PARCPkcs12KeyStore *keyStore = parcPkcs12KeyStore_Open(filename, "blueberry", PARCCryptoHashType_SHA256);
- PARCKeyStore *publicKeyStore = parcKeyStore_Create(keyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&keyStore);
- PARCPublicKeySigner *pksigner = parcPublicKeySigner_Create(publicKeyStore, PARCCryptoSuite_RSA_SHA256);
- parcKeyStore_Release(&publicKeyStore);
-
- return pksigner;
-}
-
-LONGBOW_TEST_CASE(Object, parcPublicKeySigner_Equals)
-{
- PARCPublicKeySigner *x = _createSigner("bananasA");
- PARCPublicKeySigner *y = _createSigner("bananasB");
- PARCPublicKeySigner *z = _createSigner("bananasC");
-
- parcObjectTesting_AssertEquals(x, y, z, NULL);
-
- parcPublicKeySigner_Release(&x);
- parcPublicKeySigner_Release(&y);
- parcPublicKeySigner_Release(&z);
-}
-
-LONGBOW_TEST_CASE(Object, parcPublicKeySigner_HashCode)
-{
- PARCPublicKeySigner *x = _createSigner("bananasX");
- PARCPublicKeySigner *y = _createSigner("bananasY");
-
- parcObjectTesting_AssertHashCode(x, y);
-
- parcPublicKeySigner_Release(&x);
- parcPublicKeySigner_Release(&y);
-}
-
-LONGBOW_TEST_CASE(Object, parcPublicKeySigner_IsValid)
-{
- PARCPublicKeySigner *instance = _createSigner("bananas");
- assertTrue(parcPublicKeySigner_IsValid(instance), "Expected parcPublicKeySigner_Create to result in a valid instance.");
-
- parcPublicKeySigner_Release(&instance);
- assertFalse(parcPublicKeySigner_IsValid(instance), "Expected parcPublicKeySigner_Release to result in an invalid instance.");
-}
-
-LONGBOW_TEST_CASE(Object, parcPublicKeySigner_ToString)
-{
- PARCPublicKeySigner *instance = _createSigner("bananas");
-
- char *string = parcPublicKeySigner_ToString(instance);
-
- assertNotNull(string, "Expected non-NULL result from parcPublicKeySigner_ToString");
-
- parcMemory_Deallocate((void **) &string);
- parcPublicKeySigner_Release(&instance);
-}
-
-LONGBOW_TEST_FIXTURE(Specialization)
-{
- LONGBOW_RUN_TEST_CASE(Specialization, parcPkcs12KeyStore_VerifySignature_Cert);
- LONGBOW_RUN_TEST_CASE(Specialization, parcPkcs12KeyStore_SignBuffer);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Specialization)
-{
- parcSecurity_Init();
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Specialization)
-{
- parcSecurity_Fini();
- if (!parcMemoryTesting_ExpectedOutstanding(0, "%s mismanaged memory.", longBowTestCase_GetFullName(testCase))) {
- return LONGBOW_STATUS_MEMORYLEAK;
- }
-
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Specialization, parcPkcs12KeyStore_VerifySignature_Cert)
-{
-}
-
-/**
- * Sign the file "test_rsa_pub_sha256.bin" using the test_rsa.p12 private key.
- */
-LONGBOW_TEST_CASE(Specialization, parcPkcs12KeyStore_SignBuffer)
-{
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open("test_rsa.p12", "blueberry", PARCCryptoHashType_SHA256);
- assertNotNull(publicKeyStore, "Got null result from opening openssl pkcs12 file");
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCPublicKeySigner *publicKeySigner = parcPublicKeySigner_Create(keyStore, PARCCryptoSuite_RSA_SHA256);
- parcKeyStore_Release(&keyStore);
- PARCSigner *signer = parcSigner_Create(publicKeySigner, PARCPublicKeySignerAsSigner);
- parcPublicKeySigner_Release(&publicKeySigner);
-
- assertNotNull(signer, "Got null result from opening openssl pkcs12 file");
-
- // read the buffer to sign
- int fd = open("test_random_bytes", O_RDONLY);
- assertTrue(fd != -1, "Cannot open test_random_bytes file.");
- uint8_t buffer_to_sign[2048];
- ssize_t read_bytes = read(fd, buffer_to_sign, 2048);
- close(fd);
-
- // Digest it
- PARCCryptoHasher *digester = parcSigner_GetCryptoHasher(signer);
- parcCryptoHasher_Init(digester);
- parcCryptoHasher_UpdateBytes(digester, buffer_to_sign, read_bytes);
- PARCCryptoHash *parcDigest = parcCryptoHasher_Finalize(digester);
-
- PARCSignature *bb_test_sign = parcSigner_SignDigest(signer, parcDigest);
-
- assertNotNull(bb_test_sign, "Got null byte buffer from SignBuffer");
- assertTrue(parcBuffer_Remaining(parcSignature_GetSignature(bb_test_sign)) == 128,
- "Incorrect signature size: %zu",
- parcBuffer_Position(parcSignature_GetSignature(bb_test_sign)));
-
- // now read the "true" signature
- uint8_t scratch_buffer[1024];
- fd = open("test_random_bytes.sig", O_RDONLY);
- assertTrue(fd != -1, "Cannot open test_random_bytes.sig file.");
- read_bytes = read(fd, scratch_buffer, 1024);
- assertTrue(read_bytes == 128, "read incorrect size signature from disk: %zu", read_bytes);
- close(fd);
-
- const unsigned char *actual = parcByteArray_Array(parcBuffer_Array(parcSignature_GetSignature(bb_test_sign)));
-
- assertTrue(memcmp(scratch_buffer, actual, read_bytes) == 0,
- "signatures did not match");
-
- parcSigner_Release(&signer);
- parcSignature_Release(&bb_test_sign);
- parcCryptoHash_Release(&parcDigest);
-}
-
-LONGBOW_TEST_CASE(Global, parcSigner_GetCertificateDigest)
-{
- char dirname[] = "pubkeystore_XXXXXX";
- char filename[MAXPATHLEN];
- const char *password = "flumox";
- unsigned key_bits = 1024;
- unsigned valid_days = 30;
-
- const char to_sign[] = "it was a dark and stormy night, and all through the house not a digest was creeping";
-
- char *tmp_dirname = mkdtemp(dirname);
- assertNotNull(tmp_dirname, "tmp_dirname should not be null");
- sprintf(filename, "%s/pubkeystore.p12", tmp_dirname);
-
- // create the file
- parcPkcs12KeyStore_CreateFile(filename, password, "alice", PARCSigningAlgorithm_RSA, key_bits, valid_days);
-
- // open it as an RSA provider for the signer
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open(filename, password, PARCCryptoHashType_SHA256);
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCPublicKeySigner *publicKeySigner = parcPublicKeySigner_Create(keyStore, PARCCryptoSuite_RSA_SHA256);
- PARCSigner *signer = parcSigner_Create(publicKeySigner, PARCPublicKeySignerAsSigner);
- parcPublicKeySigner_Release(&publicKeySigner);
-
- PARCCryptoHasher *hasher = parcSigner_GetCryptoHasher(signer);
- parcCryptoHasher_Init(hasher);
- parcCryptoHasher_UpdateBytes(hasher, to_sign, sizeof(to_sign));
- PARCCryptoHash *hash = parcCryptoHasher_Finalize(hasher);
- PARCSignature *sig = parcSigner_SignDigest(signer, hash);
-
- unlink(filename);
- int rc = rmdir(tmp_dirname);
- assertTrue(rc == 0, "directory cleanup failed");
-
- char *s = parcSignature_ToString(sig);
- printf("Signature: %s\n", s);
- parcMemory_Deallocate((void **) &s);
-
- PARCCryptoHash *certDigest = parcKeyStore_GetCertificateDigest(parcSigner_GetKeyStore(signer));
- assertNotNull(certDigest, "Expected a non NULL value");
- parcCryptoHash_Release(&certDigest);
-
- parcKeyStore_Release(&keyStore);
- parcCryptoHash_Release(&hash);
- parcSignature_Release(&sig);
- parcSigner_Release(&signer);
-}
-
-LONGBOW_TEST_CASE(Global, parcSigner_GetDEREncodedCertificate)
-{
- char dirname[] = "pubkeystore_XXXXXX";
- char filename[MAXPATHLEN];
- const char *password = "flumox";
- unsigned key_bits = 1024;
- unsigned valid_days = 30;
-
- const char to_sign[] = "it was a dark and stormy night, and all through the house not a digest was creeping";
-
- char *tmp_dirname = mkdtemp(dirname);
- assertNotNull(tmp_dirname, "tmp_dirname should not be null");
- sprintf(filename, "%s/pubkeystore.p12", tmp_dirname);
-
- // create the file
- parcPkcs12KeyStore_CreateFile(filename, password, "alice", PARCSigningAlgorithm_RSA, key_bits, valid_days);
-
- // open it as an RSA provider for the signer
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open(filename, password, PARCCryptoHashType_SHA256);
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCPublicKeySigner *publicKeySigner = parcPublicKeySigner_Create(keyStore, PARCCryptoSuite_RSA_SHA256);
- PARCSigner *signer = parcSigner_Create(publicKeySigner, PARCPublicKeySignerAsSigner);
- parcPublicKeySigner_Release(&publicKeySigner);
-
- PARCCryptoHasher *hasher = parcSigner_GetCryptoHasher(signer);
- parcCryptoHasher_Init(hasher);
- parcCryptoHasher_UpdateBytes(hasher, to_sign, sizeof(to_sign));
- PARCCryptoHash *hash = parcCryptoHasher_Finalize(hasher);
- PARCSignature *sig = parcSigner_SignDigest(signer, hash);
-
- unlink(filename);
- int rc = rmdir(tmp_dirname);
- assertTrue(rc == 0, "directory cleanup failed");
-
- char *s = parcSignature_ToString(sig);
- printf("Signature: %s\n", s);
- parcMemory_Deallocate((void **) &s);
-
- PARCBuffer *certificate_der = parcKeyStore_GetDEREncodedCertificate(parcSigner_GetKeyStore(signer));
- assertNotNull(certificate_der, "Expected a non NULL value");
- parcBuffer_Release(&certificate_der);
-
- parcKeyStore_Release(&keyStore);
- parcCryptoHash_Release(&hash);
- parcSignature_Release(&sig);
- parcSigner_Release(&signer);
-}
-
-LONGBOW_TEST_CASE(Global, parcSigner_CreatePublicKey)
-{
- char dirname[] = "pubkeystore_XXXXXX";
- char filename[MAXPATHLEN];
- const char *password = "flumox";
- unsigned key_bits = 1024;
- unsigned valid_days = 30;
-
- char *tmp_dirname = mkdtemp(dirname);
- assertNotNull(tmp_dirname, "tmp_dirname should not be null");
- sprintf(filename, "%s/pubkeystore.p12", tmp_dirname);
-
- // create the file
- parcPkcs12KeyStore_CreateFile(filename, password, "alice", PARCSigningAlgorithm_RSA, key_bits, valid_days);
-
- // open it as an RSA provider for the signer
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open(filename, password, PARCCryptoHashType_SHA256);
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCPublicKeySigner *publicKeySigner = parcPublicKeySigner_Create(keyStore, PARCCryptoSuite_RSA_SHA256);
- PARCSigner *signer = parcSigner_Create(publicKeySigner, PARCPublicKeySignerAsSigner);
- parcPublicKeySigner_Release(&publicKeySigner);
-
- PARCKey *key = parcSigner_CreatePublicKey(signer);
- assertNotNull(key, "Expected a non NULL value");
- parcKey_Release(&key);
- parcKeyStore_Release(&keyStore);
-
- parcSigner_Release(&signer);
-}
-
-LONGBOW_TEST_CASE(Global, parcSigner_CreateKeyId)
-{
- char dirname[] = "pubkeystore_XXXXXX";
- char filename[MAXPATHLEN];
- const char *password = "flumox";
- unsigned key_bits = 1024;
- unsigned valid_days = 30;
-
- const char to_sign[] = "it was a dark and stormy night, and all through the house not a digest was creeping";
-
- char *tmp_dirname = mkdtemp(dirname);
- assertNotNull(tmp_dirname, "tmp_dirname should not be null");
- sprintf(filename, "%s/pubkeystore.p12", tmp_dirname);
-
- // create the file
- parcPkcs12KeyStore_CreateFile(filename, password, "alice", PARCSigningAlgorithm_RSA, key_bits, valid_days);
-
- // open it as an RSA provider for the signer
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open(filename, password, PARCCryptoHashType_SHA256);
- PARCKeyStore *keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- PARCPublicKeySigner *publicKeySigner = parcPublicKeySigner_Create(keyStore, PARCCryptoSuite_RSA_SHA256);
- PARCSigner *signer = parcSigner_Create(publicKeySigner, PARCPublicKeySignerAsSigner);
- parcPublicKeySigner_Release(&publicKeySigner);
-
- PARCCryptoHasher *hasher = parcSigner_GetCryptoHasher(signer);
- parcCryptoHasher_Init(hasher);
- parcCryptoHasher_UpdateBytes(hasher, to_sign, sizeof(to_sign));
- PARCCryptoHash *hash = parcCryptoHasher_Finalize(hasher);
- PARCSignature *sig = parcSigner_SignDigest(signer, hash);
-
- unlink(filename);
- int rc = rmdir(tmp_dirname);
- assertTrue(rc == 0, "directory cleanup failed");
-
- char *s = parcSignature_ToString(sig);
- printf("Signature: %s\n", s);
- parcMemory_Deallocate((void **) &s);
-
- PARCKeyId *keyId = parcSigner_CreateKeyId(signer);
- assertNotNull(keyId, "Expected a non NULL value");
- parcKeyId_Release(&keyId);
-
- parcKeyStore_Release(&keyStore);
- parcCryptoHash_Release(&hash);
- parcSignature_Release(&sig);
- parcSigner_Release(&signer);
-}
-
-LONGBOW_TEST_CASE(Object, parcPublicKeySigner_SignatureSize)
-{
- PARCPublicKeySigner *publicKeySigner = _createSigner("test_key_size");
- PARCSigner *signer = parcSigner_Create(publicKeySigner, PARCPublicKeySignerAsSigner);
-
-
- assertTrue(parcSigner_GetSignatureSize(signer) == 128, "Modulus size unexpected %lu ", parcSigner_GetSignatureSize(signer));
- parcPublicKeySigner_Release(&publicKeySigner);
- parcSigner_Release(&signer);
-}
-
-
-int
-main(int argc, char *argv[argc])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(parc_PublicKeySigner);
- int exitStatus = longBowMain(argc, argv, testRunner, NULL);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_SecureRandom.c b/libparc/parc/security/test/test_parc_SecureRandom.c
deleted file mode 100755
index 82359a70..00000000
--- a/libparc/parc/security/test/test_parc_SecureRandom.c
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-/**
- */
-#include "../parc_SecureRandom.c"
-#include <sys/param.h>
-
-#include <fcntl.h>
-
-#include <LongBow/testing.h>
-#include <LongBow/debugging.h>
-
-#include <parc/security/parc_Security.h>
-#include <parc/algol/parc_Memory.h>
-#include <parc/algol/parc_SafeMemory.h>
-#include <parc/algol/parc_LinkedList.h>
-
-#include <parc/testing/parc_MemoryTesting.h>
-#include <parc/testing/parc_ObjectTesting.h>
-
-#define NUM_TESTS 1000
-#define EPSILON 0.01
-
-LONGBOW_TEST_RUNNER(parc_SecureRandom)
-{
- // The following Test Fixtures will run their corresponding Test Cases.
- // Test Fixtures are run in the order specified, but all tests should be idempotent.
- // Never rely on the execution order of tests or share state between them.
- LONGBOW_RUN_TEST_FIXTURE(CreateAcquireRelease);
- LONGBOW_RUN_TEST_FIXTURE(Object);
- LONGBOW_RUN_TEST_FIXTURE(Specialization);
-}
-
-// The Test Runner calls this function once before any Test Fixtures are run.
-LONGBOW_TEST_RUNNER_SETUP(parc_SecureRandom)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(parc_SecureRandom)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(CreateAcquireRelease)
-{
- LONGBOW_RUN_TEST_CASE(CreateAcquireRelease, CreateRelease);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(CreateAcquireRelease)
-{
- parcMemory_SetInterface(&PARCSafeMemoryAsPARCMemory);
- parcSecurity_Init();
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(CreateAcquireRelease)
-{
- parcSecurity_Fini();
- if (!parcMemoryTesting_ExpectedOutstanding(0, "%s leaked memory.", longBowTestCase_GetFullName(testCase))) {
- return LONGBOW_STATUS_MEMORYLEAK;
- }
-
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(CreateAcquireRelease, CreateRelease)
-{
- PARCSecureRandom *rng = parcSecureRandom_Create();
- assertNotNull(rng, "Expected non-null result from parcSecureRandom_Create();");
-
- parcObjectTesting_AssertAcquireReleaseContract(parcSecureRandom_Acquire, rng);
-
- parcSecureRandom_Release(&rng);
- assertNull(rng, "Expected null result from parcSecureRandom_Release();");
-}
-
-LONGBOW_TEST_FIXTURE(Object)
-{
- LONGBOW_RUN_TEST_CASE(Object, parcSecureRandom_IsValid);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Object)
-{
- parcSecurity_Init();
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Object)
-{
- parcSecurity_Fini();
- if (!parcMemoryTesting_ExpectedOutstanding(0, "%s mismanaged memory.", longBowTestCase_GetFullName(testCase))) {
- return LONGBOW_STATUS_MEMORYLEAK;
- }
-
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Object, parcSecureRandom_IsValid)
-{
- PARCSecureRandom *rng = parcSecureRandom_Create();
- assertNotNull(rng, "Expected a non-NULL PARCSecureRandom");
-
- assertTrue(parcSecureRandom_IsValid(rng), "Expected parcSecureRandom_Create to result in a valid instance.");
-
- parcSecureRandom_Release(&rng);
- assertFalse(parcSecureRandom_IsValid(rng), "Expected parcSecureRandom_Release to result in an invalid instance.");
-}
-
-LONGBOW_TEST_FIXTURE(Specialization)
-{
- LONGBOW_RUN_TEST_CASE(Specialization, parcSecureRandom_Create);
- LONGBOW_RUN_TEST_CASE(Specialization, parcSecureRandom_CreateWithSeed);
- LONGBOW_RUN_TEST_CASE(Specialization, parcSecureRandom_Next);
- LONGBOW_RUN_TEST_CASE(Specialization, parcSecureRandom_NextBytes);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Specialization)
-{
- parcSecurity_Init();
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Specialization)
-{
- parcSecurity_Fini();
- if (!parcMemoryTesting_ExpectedOutstanding(0, "%s mismanaged memory.", longBowTestCase_GetFullName(testCase))) {
- return LONGBOW_STATUS_MEMORYLEAK;
- }
-
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Specialization, parcSecureRandom_Create)
-{
- PARCSecureRandom *rng = parcSecureRandom_Create();
- assertTrue(parcSecureRandom_IsValid(rng), "Expected parcSecureRandom_Create to result in a valid instance.");
- parcSecureRandom_Release(&rng);
-}
-
-LONGBOW_TEST_CASE(Specialization, parcSecureRandom_CreateWithSeed)
-{
- PARCBuffer *seed = parcBuffer_Allocate(1024);
- PARCSecureRandom *rng = parcSecureRandom_CreateWithSeed(seed);
-
- assertTrue(parcSecureRandom_IsValid(rng), "Expected parcSecureRandom_CreateWithSeed to result in a valid instance.");
-
- parcSecureRandom_Release(&rng);
- parcBuffer_Release(&seed);
-}
-
-static void
-_stressTestNext(PARCSecureRandom *rng)
-{
- PARCLinkedList *seen = parcLinkedList_Create();
- size_t duplicates = 0;
- for (size_t i = 0; i < NUM_TESTS; i++) {
- uint32_t next = parcSecureRandom_Next(rng);
- PARCBuffer *buffer = parcBuffer_Allocate(sizeof(next));
- parcBuffer_Flip(parcBuffer_PutUint32(buffer, next));
-
- if (parcLinkedList_Contains(seen, buffer)) {
- duplicates++;
- } else {
- parcLinkedList_Append(seen, buffer);
- }
-
- parcBuffer_Release(&buffer);
- }
-
- assertFalse(duplicates > (NUM_TESTS * EPSILON), "The RNG failed to generate random values: saw %zu duplicates", duplicates);
- parcLinkedList_Release(&seen);
-}
-
-LONGBOW_TEST_CASE(Specialization, parcSecureRandom_Next)
-{
- PARCSecureRandom *rng = parcSecureRandom_Create();
- assertTrue(parcSecureRandom_IsValid(rng), "Expected parcSecureRandom_Create to result in a valid instance");
- _stressTestNext(rng);
- parcSecureRandom_Release(&rng);
-}
-
-static void
-_stressTestNextBytes(PARCSecureRandom *rng)
-{
- PARCLinkedList *seen = parcLinkedList_Create();
- size_t duplicates = 0;
- for (size_t i = 0; i < NUM_TESTS; i++) {
- PARCBuffer *buffer = parcBuffer_Allocate(32);
-
- int numBytes = parcSecureRandom_NextBytes(rng, buffer);
- assertTrue(numBytes == 32, "Expected 32 bytes from the RNG, got %d", numBytes);
-
- if (parcLinkedList_Contains(seen, buffer)) {
- duplicates++;
- } else {
- parcLinkedList_Append(seen, buffer);
- }
-
- parcBuffer_Release(&buffer);
- }
-
- assertFalse(duplicates > (NUM_TESTS * EPSILON), "The RNG failed to generate random values: saw %zu duplicates", duplicates);
- parcLinkedList_Release(&seen);
-}
-
-LONGBOW_TEST_CASE(Specialization, parcSecureRandom_NextBytes)
-{
- PARCBuffer *seed = parcBuffer_Allocate(1024);
- PARCSecureRandom *rng = parcSecureRandom_CreateWithSeed(seed);
-
- assertTrue(parcSecureRandom_IsValid(rng), "Expected parcSecureRandom_CreateWithSeed to result in a valid instance.");
- _stressTestNextBytes(rng);
-
- parcSecureRandom_Release(&rng);
- parcBuffer_Release(&seed);
-}
-
-int
-main(int argc, char *argv[argc])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(parc_SecureRandom);
- int exitStatus = longBowMain(argc, argv, testRunner, NULL);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_Security.c b/libparc/parc/security/test/test_parc_Security.c
deleted file mode 100755
index c2f2f33e..00000000
--- a/libparc/parc/security/test/test_parc_Security.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-// Include the file(s) containing the functions to be tested.
-// This permits internal static functions to be visible to this Test Framework.
-#include "../parc_Security.c"
-
-#include <LongBow/unit-test.h>
-#include <parc/algol/parc_SafeMemory.h>
-
-LONGBOW_TEST_RUNNER(parc_Security)
-{
- // The following Test Fixtures will run their corresponding Test Cases.
- // Test Fixtures are run in the order specified, but all tests should be idempotent.
- // Never rely on the execution order of tests or share state between them.
- LONGBOW_RUN_TEST_FIXTURE(Global);
-}
-
-// The Test Runner calls this function once before any Test Fixtures are run.
-LONGBOW_TEST_RUNNER_SETUP(parc_Security)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(parc_Security)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Global)
-{
- LONGBOW_RUN_TEST_CASE(Global, parcSecurity_Fini);
- LONGBOW_RUN_TEST_CASE(Global, parcSecurity_Init);
- LONGBOW_RUN_TEST_CASE(Global, parcSecurity_Init_Multiple);
- LONGBOW_RUN_TEST_CASE(Global, parcSecurity_IsInitialized);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Global, parcSecurity_Fini)
-{
- parcSecurity_Init();
- parcSecurity_AssertIsInitialized();
- parcSecurity_Fini();
-}
-
-LONGBOW_TEST_CASE(Global, parcSecurity_Init)
-{
- parcSecurity_Init();
- parcSecurity_AssertIsInitialized();
- parcSecurity_Fini();
-}
-
-LONGBOW_TEST_CASE(Global, parcSecurity_Init_Multiple)
-{
- parcSecurity_Init();
- parcSecurity_Init();
- parcSecurity_Init();
- parcSecurity_Init();
- parcSecurity_AssertIsInitialized();
- parcSecurity_Fini();
- parcSecurity_Fini();
- parcSecurity_Fini();
- parcSecurity_Fini();
- assertFalse(parcSecurity_IsInitialized(), "parcSecurity_IsInitialized should be false now");
-}
-
-LONGBOW_TEST_CASE(Global, parcSecurity_IsInitialized)
-{
- parcSecurity_Init();
- parcSecurity_AssertIsInitialized();
- parcSecurity_Fini();
- assertFalse(parcSecurity_IsInitialized(), "parcSecurity_IsInitialized should be false now");
-}
-
-int
-main(int argc, char *argv[argc])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(parc_Security);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner, NULL);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_Signature.c b/libparc/parc/security/test/test_parc_Signature.c
deleted file mode 100755
index 4c57d5a9..00000000
--- a/libparc/parc/security/test/test_parc_Signature.c
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// Include the file(s) containing the functions to be tested.
-// This permits internal static functions to be visible to this Test Framework.
-#include "../parc_Signature.c"
-#include <inttypes.h>
-
-#include <parc/algol/parc_SafeMemory.h>
-#include <LongBow/unit-test.h>
-#include <parc/testing/parc_ObjectTesting.h>
-
-LONGBOW_TEST_RUNNER(parc_Signature)
-{
- // The following Test Fixtures will run their corresponding Test Cases.
- // Test Fixtures are run in the order specified, but all tests should be idempotent.
- // Never rely on the execution order of tests or share state between them.
- LONGBOW_RUN_TEST_FIXTURE(Global);
- LONGBOW_RUN_TEST_FIXTURE(Local);
-}
-
-// The Test Runner calls this function once before any Test Fixtures are run.
-LONGBOW_TEST_RUNNER_SETUP(parc_Signature)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(parc_Signature)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Global)
-{
- LONGBOW_RUN_TEST_CASE(Global, parcSignature_Create);
- LONGBOW_RUN_TEST_CASE(Global, parcSignature_Acquire);
- LONGBOW_RUN_TEST_CASE(Global, parcSignature_Release);
- LONGBOW_RUN_TEST_CASE(Global, parcSignature_Equals);
- LONGBOW_RUN_TEST_CASE(Global, parcSignature_GetHashType);
- LONGBOW_RUN_TEST_CASE(Global, parcSignature_GetSignature);
- LONGBOW_RUN_TEST_CASE(Global, parcSignature_GetSigningAlgorithm);
- LONGBOW_RUN_TEST_CASE(Global, parcSignature_ToString);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- uint32_t outstandingAllocations = parcSafeMemory_ReportAllocation(STDERR_FILENO);
- if (outstandingAllocations != 0) {
- printf("%s leaks memory by %d allocations\n", longBowTestCase_GetName(testCase), outstandingAllocations);
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Global, parcSignature_Create)
-{
- PARCBuffer *bits = parcBuffer_Allocate(10); // arbitrary buffer size -- not important
- PARCSignature *signature = parcSignature_Create(PARCSigningAlgorithm_ECDSA, PARCCryptoHashType_SHA256, bits);
- parcBuffer_Release(&bits);
-
- assertNotNull(signature, "Expected non-NULL PARCSignature");
- PARCReferenceCount referenceCount = parcObject_GetReferenceCount(signature);
- assertTrue(referenceCount == 1,
- "Expected reference count to be equal to 1, got %" PRIu64 "",
- referenceCount);
-
- parcSignature_Release(&signature);
-}
-
-LONGBOW_TEST_CASE(Global, parcSignature_Acquire)
-{
- PARCBuffer *bits = parcBuffer_Allocate(10); // arbitrary buffer size -- not important
- PARCSignature *signature = parcSignature_Create(PARCSigningAlgorithm_ECDSA, PARCCryptoHashType_SHA256, bits);
- PARCSignature *handle = parcSignature_Acquire(signature);
- parcBuffer_Release(&bits);
-
- assertNotNull(signature, "Expected non-NULL PARCSignature");
- assertNotNull(handle, "Expected non-NULL PARCSignature after acquisition");
- PARCReferenceCount referenceCount = parcObject_GetReferenceCount(handle);
- assertTrue(referenceCount == 2,
- "Expected reference count to be equal to 2, got %" PRIu64 "",
- referenceCount);
-
- parcSignature_Release(&signature);
- parcSignature_Release(&handle);
-}
-
-LONGBOW_TEST_CASE(Global, parcSignature_Release)
-{
- PARCBuffer *bits = parcBuffer_Allocate(10); // arbitrary bufer size -- not important
- PARCSignature *signature = parcSignature_Create(PARCSigningAlgorithm_ECDSA, PARCCryptoHashType_SHA256, bits);
- PARCSignature *handle = parcSignature_Acquire(signature);
- parcBuffer_Release(&bits);
-
- assertNotNull(signature, "Expected non-NULL PARCSignature");
- assertNotNull(handle, "Expected non-NULL PARCSignature after acquisition");
- PARCReferenceCount referenceCount = parcObject_GetReferenceCount(handle);
- assertTrue(referenceCount == 2,
- "Expected reference count to be equal to 2, got %" PRIu64 "",
- referenceCount);
-
- parcSignature_Release(&signature);
- parcSignature_Release(&handle);
-
- assertNull(signature, "Expected NULL PARCSignature");
-}
-
-LONGBOW_TEST_CASE(Global, parcSignature_Equals)
-{
- PARCBuffer *bits = parcBuffer_Allocate(10); // arbitrary bufer size -- not important
- PARCBuffer *otherBits = parcBuffer_Allocate(strlen("hello"));
- parcBuffer_PutArray(otherBits, strlen("hello"), (uint8_t *) "hello");
-
- PARCSignature *x = parcSignature_Create(PARCSigningAlgorithm_ECDSA, PARCCryptoHashType_SHA256, bits);
- PARCSignature *y = parcSignature_Create(PARCSigningAlgorithm_ECDSA, PARCCryptoHashType_SHA256, bits);
- PARCSignature *z = parcSignature_Create(PARCSigningAlgorithm_ECDSA, PARCCryptoHashType_SHA256, bits);
- PARCSignature *unequal1 = parcSignature_Create(PARCSigningAlgorithm_HMAC, PARCCryptoHashType_SHA256, bits);
- PARCSignature *unequal2 = parcSignature_Create(PARCSigningAlgorithm_ECDSA, PARCCryptoHashType_CRC32C, bits);
- PARCSignature *unequal3 = parcSignature_Create(PARCSigningAlgorithm_ECDSA, PARCCryptoHashType_SHA256, otherBits);
-
- parcObjectTesting_AssertEqualsFunction(parcSignature_Equals, x, y, z, unequal1, unequal2, unequal3, NULL);
-
- parcSignature_Release(&x);
- parcSignature_Release(&y);
- parcSignature_Release(&z);
- parcSignature_Release(&unequal1);
- parcSignature_Release(&unequal2);
- parcSignature_Release(&unequal3);
-
- parcBuffer_Release(&bits);
- parcBuffer_Release(&otherBits);
-}
-
-LONGBOW_TEST_CASE(Global, parcSignature_GetHashType)
-{
- PARCBuffer *bits = parcBuffer_Allocate(strlen("Hello"));
- parcBuffer_PutArray(bits, strlen("Hello"), (uint8_t *) "Hello");
- PARCCryptoHashType expected = PARCCryptoHashType_SHA256;
- PARCSignature *signature = parcSignature_Create(PARCSigningAlgorithm_ECDSA, expected, bits);
- parcBuffer_Release(&bits);
-
- PARCCryptoHashType actual = parcSignature_GetHashType(signature);
-
- assertTrue(expected == actual, "Expected %d, actual %d", expected, actual);
- parcSignature_Release(&signature);
-}
-
-LONGBOW_TEST_CASE(Global, parcSignature_GetSignature)
-{
- PARCBuffer *expected = parcBuffer_Allocate(strlen("Hello"));
- parcBuffer_PutArray(expected, strlen("Hello"), (uint8_t *) "Hello");
- PARCSignature *signature = parcSignature_Create(PARCSigningAlgorithm_ECDSA, PARCCryptoHashType_SHA256, expected);
-
- PARCBuffer *actual = parcSignature_GetSignature(signature);
-
- assertTrue(parcBuffer_Equals(expected, actual), "Expected the original signature bits to be equal to the actual bits");
- parcSignature_Release(&signature);
- parcBuffer_Release(&expected);
-}
-
-LONGBOW_TEST_CASE(Global, parcSignature_GetSigningAlgorithm)
-{
- PARCBuffer *signatureBits = parcBuffer_Allocate(strlen("Hello"));
- parcBuffer_PutArray(signatureBits, strlen("Hello"), (uint8_t *) "Hello");
- PARCSigningAlgorithm expected = PARCSigningAlgorithm_ECDSA;
- PARCSignature *signature = parcSignature_Create(expected, PARCCryptoHashType_SHA256, signatureBits);
-
- PARCSigningAlgorithm actual = parcSignature_GetSigningAlgorithm(signature);
-
- assertTrue(expected == actual, "Expected %d, actual %d", expected, actual);
- parcSignature_Release(&signature);
- parcBuffer_Release(&signatureBits);
-}
-
-LONGBOW_TEST_CASE(Global, parcSignature_ToString)
-{
- PARCBuffer *signatureBits = parcBuffer_Allocate(strlen("Hello"));
- parcBuffer_PutArray(signatureBits, strlen("Hello"), (uint8_t *) "Hello");
- PARCSigningAlgorithm expected = PARCSigningAlgorithm_ECDSA;
- PARCSignature *signature = parcSignature_Create(expected, PARCCryptoHashType_SHA256, signatureBits);
-
- char *string = parcSignature_ToString(signature);
-
- assertNotNull(string, "Expected non-NULL result from parcSignature_ToString");
-
- parcMemory_Deallocate((void **) &string);
- parcSignature_Release(&signature);
- parcBuffer_Release(&signatureBits);
-}
-
-LONGBOW_TEST_FIXTURE(Local)
-{
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Local)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Local)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-int
-main(int argc, char *argv[])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(parc_Signature);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_Signer.c b/libparc/parc/security/test/test_parc_Signer.c
deleted file mode 100644
index b9605384..00000000
--- a/libparc/parc/security/test/test_parc_Signer.c
+++ /dev/null
@@ -1,305 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <config.h>
-#include <LongBow/unit-test.h>
-#include <sys/param.h>
-#include <errno.h>
-
-#include "../parc_Signer.c"
-
-#include <parc/algol/parc_SafeMemory.h>
-#include <parc/security/parc_Security.h>
-#include <parc/testing/parc_ObjectTesting.h>
-
-#include <parc/security/parc_Pkcs12KeyStore.h>
-#include <parc/security/parc_KeyStore.h>
-#include <parc/security/parc_PublicKeySigner.h>
-#include <parc/security/parc_SymmetricKeySigner.h>
-
-#define FAKE_SIGNATURE "signature"
-
-typedef struct {
- PARCCryptoHasher *hasher;
- PARCKeyStore *keyStore;
-} _MockSigner;
-
-static PARCSignature *
-_SignDigest(PARCSigner *interfaceContext)
-{
- PARCBuffer *buffer = parcBuffer_WrapCString(FAKE_SIGNATURE);
- PARCSignature *signature = parcSignature_Create(PARCSigningAlgorithm_RSA, PARCCryptoHashType_SHA256, buffer);
- parcBuffer_Release(&buffer);
- return signature;
-}
-
-static PARCSigningAlgorithm
-_GetSigningAlgorithm(PARCSigner *interfaceContext)
-{
- return PARCSigningAlgorithm_RSA;
-}
-
-static PARCCryptoHashType
-_GetCryptoHashType(PARCSigner *signer)
-{
- return PARCCryptoHashType_SHA256;
-}
-
-static PARCCryptoHasher *
-_GetCryptoHasher(_MockSigner *signer)
-{
- return signer->hasher;
-}
-
-static PARCKeyStore *
-_GetKeyStore(_MockSigner *signer)
-{
- return signer->keyStore;
-}
-
-static bool
-_releaseSigner(_MockSigner **signer)
-{
- parcCryptoHasher_Release(&((*signer)->hasher));
- parcKeyStore_Release(&((*signer)->keyStore));
- return true;
-}
-
-parcObject_ImplementAcquire(_mockSigner, _MockSigner);
-parcObject_ImplementRelease(_mockSigner, _MockSigner);
-
-parcObject_Override(_MockSigner, PARCObject,
- .destructor = (PARCObjectDestructor *) _releaseSigner);
-
-static _MockSigner *
-_createSigner()
-{
- _MockSigner *signer = parcObject_CreateInstance(_MockSigner);
-
- signer->hasher = parcCryptoHasher_Create(PARCCryptoHashType_SHA256);
-
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open("test_rsa.p12", "blueberry", PARCCryptoHashType_SHA256);
- assertNotNull(publicKeyStore, "Got null result from opening openssl pkcs12 file");
-
- signer->keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- return signer;
-}
-
-static PARCSigningInterface *_MockSignerInterface = &(PARCSigningInterface) {
- .GetCryptoHasher = (PARCCryptoHasher * (*)(void *))_GetCryptoHasher,
- .SignDigest = (PARCSignature * (*)(void *, const PARCCryptoHash *))_SignDigest,
- .GetSigningAlgorithm = (PARCSigningAlgorithm (*)(void *))_GetSigningAlgorithm,
- .GetCryptoHashType = (PARCCryptoHashType (*)(void *))_GetCryptoHashType,
- .GetKeyStore = (PARCKeyStore * (*)(void *))_GetKeyStore,
-};
-
-LONGBOW_TEST_RUNNER(parc_Signer)
-{
- LONGBOW_RUN_TEST_FIXTURE(Global);
-}
-
-// The Test Runner calls this function once before any Test Fixtures are run.
-LONGBOW_TEST_RUNNER_SETUP(parc_Signer)
-{
- parcMemory_SetInterface(&PARCSafeMemoryAsPARCMemory);
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(parc_Signer)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Global)
-{
- LONGBOW_RUN_TEST_CASE(Global, parcSigner_Create);
- LONGBOW_RUN_TEST_CASE(Global, parcSigner_AcquireRelease);
- LONGBOW_RUN_TEST_CASE(Global, parcSigner_CreateKeyId);
- LONGBOW_RUN_TEST_CASE(Global, parcSigner_CreatePublicKey);
- LONGBOW_RUN_TEST_CASE(Global, parcSigner_GetCryptoHasher);
- LONGBOW_RUN_TEST_CASE(Global, parcSigner_SignDigest);
- LONGBOW_RUN_TEST_CASE(Global, parcSigner_GetSigningAlgorithm);
- LONGBOW_RUN_TEST_CASE(Global, parcSigner_GetCryptoHashType);
- LONGBOW_RUN_TEST_CASE(Global, parcSigner_GetKeyStore);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- parcSecurity_Init();
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- parcSecurity_Fini();
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-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(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_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_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_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_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);
-}
-
-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_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_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);
-}
-
-int
-main(int argc, char *argv[])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(parc_Signer);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_SignerEC.c b/libparc/parc/security/test/test_parc_SignerEC.c
deleted file mode 100644
index 2b6fc577..00000000
--- a/libparc/parc/security/test/test_parc_SignerEC.c
+++ /dev/null
@@ -1,312 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <config.h>
-#include <LongBow/unit-test.h>
-#include <sys/param.h>
-#include <errno.h>
-
-#include "../parc_Signer.c"
-
-#include <parc/algol/parc_SafeMemory.h>
-#include <parc/security/parc_Security.h>
-#include <parc/testing/parc_ObjectTesting.h>
-
-#include <parc/security/parc_Pkcs12KeyStore.h>
-#include <parc/security/parc_KeyStore.h>
-#include <parc/security/parc_PublicKeySigner.h>
-#include <parc/security/parc_SymmetricKeySigner.h>
-
-#define FAKE_SIGNATURE "signature"
-
-typedef struct {
- PARCCryptoHasher *hasher;
- PARCKeyStore *keyStore;
-} _MockSigner;
-
-static PARCSignature *
-_SignDigest(PARCSigner *interfaceContext)
-{
- PARCBuffer *buffer = parcBuffer_WrapCString(FAKE_SIGNATURE);
- PARCSignature *signature = parcSignature_Create(PARCSigningAlgorithm_ECDSA, PARCCryptoHashType_SHA256, buffer);
- parcBuffer_Release(&buffer);
- return signature;
-}
-
-static PARCSigningAlgorithm
-_GetSigningAlgorithm(PARCSigner *interfaceContext)
-{
- return PARCSigningAlgorithm_ECDSA;
-}
-
-static PARCCryptoHashType
-_GetCryptoHashType(PARCSigner *signer)
-{
- return PARCCryptoHashType_SHA256;
-}
-
-static PARCCryptoHasher *
-_GetCryptoHasher(_MockSigner *signer)
-{
- return signer->hasher;
-}
-
-static PARCKeyStore *
-_GetKeyStore(_MockSigner *signer)
-{
- return signer->keyStore;
-}
-
-static bool
-_releaseSigner(_MockSigner **signer)
-{
- parcCryptoHasher_Release(&((*signer)->hasher));
- parcKeyStore_Release(&((*signer)->keyStore));
- return true;
-}
-
-parcObject_ImplementAcquire(_mockSigner, _MockSigner);
-parcObject_ImplementRelease(_mockSigner, _MockSigner);
-
-parcObject_Override(_MockSigner, PARCObject,
- .destructor = (PARCObjectDestructor *) _releaseSigner);
-
-static _MockSigner *
-_createSigner()
-{
- const char *filename = "/tmp/test_ecdsa.p12";
- const char *password = "12345";
- const char *subject = "alice";
- _MockSigner *signer = parcObject_CreateInstance(_MockSigner);
-
- signer->hasher = parcCryptoHasher_Create(PARCCryptoHashType_SHA256);
-
- bool res = parcPkcs12KeyStore_CreateFile(filename, password, subject, PARCSigningAlgorithm_ECDSA, 256, 180);
- assertTrue(res, "Unable to create an ECDSA key");
-
- PARCPkcs12KeyStore *publicKeyStore = parcPkcs12KeyStore_Open("test_ec.p12", "blueberry", PARCCryptoHashType_SHA256);
-
- assertNotNull(publicKeyStore, "Got null result from opening openssl pkcs12 file");
-
- signer->keyStore = parcKeyStore_Create(publicKeyStore, PARCPkcs12KeyStoreAsKeyStore);
- parcPkcs12KeyStore_Release(&publicKeyStore);
-
- return signer;
-}
-
-static PARCSigningInterface *_MockSignerInterface = &(PARCSigningInterface) {
- .GetCryptoHasher = (PARCCryptoHasher * (*)(void *))_GetCryptoHasher,
- .SignDigest = (PARCSignature * (*)(void *, const PARCCryptoHash *))_SignDigest,
- .GetSigningAlgorithm = (PARCSigningAlgorithm (*)(void *))_GetSigningAlgorithm,
- .GetCryptoHashType = (PARCCryptoHashType (*)(void *))_GetCryptoHashType,
- .GetKeyStore = (PARCKeyStore * (*)(void *))_GetKeyStore,
-};
-
-LONGBOW_TEST_RUNNER(parc_Signer)
-{
- LONGBOW_RUN_TEST_FIXTURE(Global);
-}
-
-// The Test Runner calls this function once before any Test Fixtures are run.
-LONGBOW_TEST_RUNNER_SETUP(parc_Signer)
-{
- parcMemory_SetInterface(&PARCSafeMemoryAsPARCMemory);
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(parc_Signer)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Global)
-{
- LONGBOW_RUN_TEST_CASE(Global, parcSigner_Create);
- LONGBOW_RUN_TEST_CASE(Global, parcSigner_AcquireRelease);
- LONGBOW_RUN_TEST_CASE(Global, parcSigner_CreateKeyId);
- LONGBOW_RUN_TEST_CASE(Global, parcSigner_CreatePublicKey);
- LONGBOW_RUN_TEST_CASE(Global, parcSigner_GetCryptoHasher);
- LONGBOW_RUN_TEST_CASE(Global, parcSigner_SignDigest);
- LONGBOW_RUN_TEST_CASE(Global, parcSigner_GetSigningAlgorithm);
- LONGBOW_RUN_TEST_CASE(Global, parcSigner_GetCryptoHashType);
- LONGBOW_RUN_TEST_CASE(Global, parcSigner_GetKeyStore);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- parcSecurity_Init();
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- parcSecurity_Fini();
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-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(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_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_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_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_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);
-}
-
-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_ECDSA == alg, "Expected PARCSigningAlgorithm_ECDSA algorithm, got %d", alg);
-
- 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_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);
-}
-
-int
-main(int argc, char *argv[])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(parc_Signer);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_SigningAlgorithm.c b/libparc/parc/security/test/test_parc_SigningAlgorithm.c
deleted file mode 100755
index 12e50956..00000000
--- a/libparc/parc/security/test/test_parc_SigningAlgorithm.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/** *
- */
-// Include the file(s) containing the functions to be tested.
-// This permits internal static functions to be visible to this Test Framework.
-#include "../parc_SigningAlgorithm.c"
-#include <parc/security/parc_CryptoSuite.h>
-
-#include <LongBow/testing.h>
-#include <LongBow/debugging.h>
-
-LONGBOW_TEST_RUNNER(test_parc_SigningAlgorithm)
-{
- // The following Test Fixtures will run their corresponding Test Cases.
- // Test Fixtures are run in the order specified, but all tests should be idempotent.
- // Never rely on the execution order of tests or share state between them.
- LONGBOW_RUN_TEST_FIXTURE(Global);
-}
-
-// The Test Runner calls this function once before any Test Fixtures are run.
-LONGBOW_TEST_RUNNER_SETUP(test_parc_SigningAlgorithm)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(test_parc_SigningAlgorithm)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Global)
-{
- LONGBOW_RUN_TEST_CASE(Global, parcSigningAlgorithm_ToFromString);
- LONGBOW_RUN_TEST_CASE(Global, parcSigningAlgorithm_ToFromString_NotFound);
- LONGBOW_RUN_TEST_CASE(Global, parcSigningAlgorithm_GetSigningAlgorithm);
- LONGBOW_RUN_TEST_CASE(Global, parcSigningAlgorithm_FromString_NotFound);
- LONGBOW_RUN_TEST_CASE(Global, parcSigningAlgorithm_GetSigningAlgorithm_BadAlgorithm);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Global, parcSigningAlgorithm_ToFromString)
-{
- PARCSigningAlgorithm expected = PARCSigningAlgorithm_HMAC;
-
- const char *string = parcSigningAlgorithm_ToString(expected);
-
- PARCSigningAlgorithm actual = parcSigningAlgorithm_FromString(string);
-
- assertTrue(expected == actual, "Expected %d, actual %d", expected, actual);
-}
-
-LONGBOW_TEST_CASE(Global, parcSigningAlgorithm_ToFromString_NotFound)
-{
- PARCSigningAlgorithm expected = 123456;
-
- const char *string = parcSigningAlgorithm_ToString(expected);
-
- assertNull(string, "Expect parcSigningAlgorithm_ToString to return NULL");
-}
-
-LONGBOW_TEST_CASE(Global, parcSigningAlgorithm_FromString_NotFound)
-{
- PARCSigningAlgorithm actual = parcSigningAlgorithm_FromString("garbage string of unknown stuff");
-
- assertTrue(actual == PARCSigningAlgorithm_UNKNOWN,
- "Expect parcSigningAlgorithm_FromString to return PARCSigningAlgorithm_UNKNOWN");
-}
-
-LONGBOW_TEST_CASE(Global, parcSigningAlgorithm_GetSigningAlgorithm)
-{
- PARCSigningAlgorithm actual = parcCryptoSuite_GetSigningAlgorithm(PARCCryptoSuite_DSA_SHA256);
- assertTrue(PARCSigningAlgorithm_DSA == actual, "Expected %d, actual %d", PARCSigningAlgorithm_DSA, actual);
-
- actual = parcCryptoSuite_GetSigningAlgorithm(PARCCryptoSuite_RSA_SHA256);
- assertTrue(PARCSigningAlgorithm_RSA == actual, "Expected %d, actual %d", PARCSigningAlgorithm_RSA, actual);
-
- actual = parcCryptoSuite_GetSigningAlgorithm(PARCCryptoSuite_RSA_SHA512);
- assertTrue(PARCSigningAlgorithm_RSA == actual, "Expected %d, actual %d", PARCSigningAlgorithm_RSA, actual);
-
- actual = parcCryptoSuite_GetSigningAlgorithm(PARCCryptoSuite_HMAC_SHA256);
- assertTrue(PARCSigningAlgorithm_HMAC == actual, "Expected %d, actual %d", PARCSigningAlgorithm_HMAC, actual);
-
- actual = parcCryptoSuite_GetSigningAlgorithm(PARCCryptoSuite_HMAC_SHA512);
- assertTrue(PARCSigningAlgorithm_HMAC == actual, "Expected %d, actual %d", PARCSigningAlgorithm_HMAC, actual);
-
- actual = parcCryptoSuite_GetSigningAlgorithm(PARCCryptoSuite_NULL_CRC32C);
- assertTrue(PARCSigningAlgorithm_NULL == actual, "Expected %d, actual %d", PARCSigningAlgorithm_NULL, actual);
-}
-
-LONGBOW_TEST_CASE_EXPECTS(Global, parcSigningAlgorithm_GetSigningAlgorithm_BadAlgorithm, .event = &LongBowTrapIllegalValue)
-{
- parcCryptoSuite_GetSigningAlgorithm(-1);
-}
-
-int
-main(int argc, char *argv[argc])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(test_parc_SigningAlgorithm);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner, NULL);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_SymmetricKeySigner.c b/libparc/parc/security/test/test_parc_SymmetricKeySigner.c
deleted file mode 100644
index 401e2517..00000000
--- a/libparc/parc/security/test/test_parc_SymmetricKeySigner.c
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- */
-#include "../parc_SymmetricKeySigner.c"
-#include <sys/param.h>
-
-#include <errno.h>
-#include <config.h>
-#include <fcntl.h>
-
-#include <LongBow/testing.h>
-#include <LongBow/debugging.h>
-#include <LongBow/longBow_Compiler.h>
-
-#include <parc/algol/parc_Memory.h>
-#include <parc/algol/parc_SafeMemory.h>
-#include <parc/algol/parc_DisplayIndented.h>
-
-#include <parc/testing/parc_MemoryTesting.h>
-#include <parc/testing/parc_ObjectTesting.h>
-
-static PARCSymmetricKeySigner *
-_createSigner()
-{
- PARCBuffer *secret_key = parcSymmetricKeyStore_CreateKey(256);
-
- PARCSymmetricKeyStore *symmetricKeyStore = parcSymmetricKeyStore_Create(secret_key);
- parcBuffer_Release(&secret_key);
-
- PARCSymmetricKeySigner *privateKeySigner = parcSymmetricKeySigner_Create(symmetricKeyStore, PARCCryptoHashType_SHA256);
- parcSymmetricKeyStore_Release(&symmetricKeyStore);
-
- return privateKeySigner;
-}
-
-LONGBOW_TEST_RUNNER(parc_SymmetricSigner)
-{
- // The following Test Fixtures will run their corresponding Test Cases.
- // Test Fixtures are run in the order specified, but all tests should be idempotent.
- // Never rely on the execution order of tests or share state between them.
- LONGBOW_RUN_TEST_FIXTURE(CreateAcquireRelease);
- LONGBOW_RUN_TEST_FIXTURE(Specialization);
-}
-
-// The Test Runner calls this function once before any Test Fixtures are run.
-LONGBOW_TEST_RUNNER_SETUP(parc_SymmetricSigner)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(parc_SymmetricSigner)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(CreateAcquireRelease)
-{
- LONGBOW_RUN_TEST_CASE(CreateAcquireRelease, CreateRelease);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(CreateAcquireRelease)
-{
- parcMemory_SetInterface(&PARCSafeMemoryAsPARCMemory);
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(CreateAcquireRelease)
-{
- if (!parcMemoryTesting_ExpectedOutstanding(0, "%s leaked memory.", longBowTestCase_GetFullName(testCase))) {
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-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_FIXTURE(Specialization)
-{
- LONGBOW_RUN_TEST_CASE(Specialization, test_hmac_sha256);
- LONGBOW_RUN_TEST_CASE(Specialization, test_hmac_sha512);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Specialization)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Specialization)
-{
- if (!parcMemoryTesting_ExpectedOutstanding(0, "%s mismanaged memory.", longBowTestCase_GetFullName(testCase))) {
- return LONGBOW_STATUS_MEMORYLEAK;
- }
-
- return LONGBOW_STATUS_SUCCEEDED;
-}
-LONGBOW_TEST_CASE(Specialization, test_hmac_sha256)
-{
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
- HMAC_CTX *ctx = HMAC_CTX_new();
-#else
- HMAC_CTX ctx;
-#endif
- char key[] = "apple_pie_is_good";
- int fd;
- uint8_t to_digest_buffer[MAXPATHLEN];
- ssize_t to_digest_length;
-
- uint8_t true_hmac_buffer[MAXPATHLEN];
- ssize_t true_hmac_length;
-
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
- HMAC_Init_ex(ctx, key, sizeof(key), EVP_sha256(), NULL);
-#else
- LONGBOW_STOP_DEPRECATED_WARNINGS
- HMAC_CTX_init(&ctx);
- HMAC_Init_ex(&ctx, key, sizeof(key), EVP_sha256(), NULL);
- LONGBOW_START_DEPRECATED_WARNINGS
-#endif
- fd = open("test_random_bytes", O_RDONLY);
- assertTrue(fd > 0, "Could not open input file: %s", strerror(errno));
- to_digest_length = read(fd, to_digest_buffer, sizeof(to_digest_buffer));
- assertTrue(to_digest_length > 0, "Could not read input file: %s", strerror(errno));
- close(fd);
-
- fd = open("test_random_bytes.hmac_sha256", O_RDONLY);
- assertTrue(fd > 0, "Could not open input file: %s", strerror(errno));
- true_hmac_length = read(fd, true_hmac_buffer, sizeof(true_hmac_buffer));
- assertTrue(true_hmac_length > 0, "Could not read input file: %s", strerror(errno));
- close(fd);
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
- _hmacInit(ctx);
- _hmacUpdate(ctx, to_digest_buffer, to_digest_length);
- PARCBuffer *output = _hmacFinalize(ctx);
-#else
- _hmacInit(&ctx);
- _hmacUpdate(&ctx, to_digest_buffer, to_digest_length);
- PARCBuffer *output = _hmacFinalize(&ctx);
-#endif
-
- assertTrue(parcBuffer_Position(output) == true_hmac_length,
- "hmac wrong length, expected %zu got %zu",
- true_hmac_length,
- parcBuffer_Position(output));
-
- assertTrue(memcmp(parcByteArray_Array(parcBuffer_Array(output)), true_hmac_buffer, true_hmac_length) == 0,
- "hmac values did not match");
-
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
- HMAC_CTX_free(ctx);
-#else
- LONGBOW_STOP_DEPRECATED_WARNINGS
- HMAC_cleanup(&ctx);
- LONGBOW_START_DEPRECATED_WARNINGS
-#endif
- parcBuffer_Release(&output);
-}
-
-LONGBOW_TEST_CASE(Specialization, test_hmac_sha512)
-{
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
- HMAC_CTX *ctx = HMAC_CTX_new();
-#else
- HMAC_CTX ctx;
-#endif
- char key[] = "apple_pie_is_good";
- int fd;
- uint8_t to_digest_buffer[MAXPATHLEN];
- ssize_t to_digest_length;
-
- uint8_t true_hmac_buffer[MAXPATHLEN];
- ssize_t true_hmac_length;
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
- HMAC_Init_ex(ctx, key, sizeof(key), EVP_sha512(), NULL);
-#else
- LONGBOW_STOP_DEPRECATED_WARNINGS
- HMAC_CTX_init(&ctx);
- HMAC_Init_ex(&ctx, key, sizeof(key), EVP_sha512(), NULL);
- LONGBOW_START_DEPRECATED_WARNINGS
-#endif
- fd = open("test_random_bytes", O_RDONLY);
- assertTrue(fd > 0, "Could not open input file: %s", strerror(errno));
- to_digest_length = read(fd, to_digest_buffer, sizeof(to_digest_buffer));
- assertTrue(to_digest_length > 0, "Could not read input file: %s", strerror(errno));
- close(fd);
-
- fd = open("test_random_bytes.hmac_sha512", O_RDONLY);
- assertTrue(fd > 0, "Could not open input file: %s", strerror(errno));
- true_hmac_length = read(fd, true_hmac_buffer, sizeof(true_hmac_buffer));
- assertTrue(true_hmac_length > 0, "Could not read input file: %s", strerror(errno));
- close(fd);
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
- _hmacInit(ctx);
- _hmacUpdate(ctx, to_digest_buffer, to_digest_length);
- PARCBuffer *output = _hmacFinalize(ctx);
-#else
- _hmacInit(&ctx);
- _hmacUpdate(&ctx, to_digest_buffer, to_digest_length);
- PARCBuffer *output = _hmacFinalize(&ctx);
-#endif
-
- assertTrue(parcBuffer_Position(output) == true_hmac_length,
- "hmac wrong length, expected %zu got %zu",
- true_hmac_length,
- parcBuffer_Position(output));
-
- assertTrue(memcmp(parcByteArray_Array(parcBuffer_Array(output)), true_hmac_buffer, true_hmac_length) == 0,
- "hmac values did not match");
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
- HMAC_CTX_free(ctx);
-#else
- LONGBOW_STOP_DEPRECATED_WARNINGS
- HMAC_cleanup(&ctx);
- LONGBOW_START_DEPRECATED_WARNINGS
-#endif
- parcBuffer_Release(&output);
-}
-
-LONGBOW_TEST_CASE(Global, parcSymmetricSigner_SignatureSize)
-{
- PARCSymmetricKeySigner *symmetricSigner = _createSigner();
-
- PARCSigner *signer = parcSigner_Create(symmetricSigner, PARCSymmetricKeySignerAsSigner);
-
- assertTrue(parcSigner_GetSignatureSize(signer) == 32, "Key size unexpected %zu ", parcSigner_GetSignatureSize(signer));
- parcSigner_Release(&signer);
- parcSymmetricKeySigner_Release(&symmetricSigner);
-}
-
-int
-main(int argc, char *argv[argc])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(parc_SymmetricSigner);
- int exitStatus = longBowMain(argc, argv, testRunner, NULL);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_SymmetricKeyStore.c b/libparc/parc/security/test/test_parc_SymmetricKeyStore.c
deleted file mode 100755
index ab9dfddb..00000000
--- a/libparc/parc/security/test/test_parc_SymmetricKeyStore.c
+++ /dev/null
@@ -1,351 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-// Include the file(s) containing the functions to be tested.
-// This permits internal static functions to be visible to this Test Framework.
-#include "../parc_SymmetricKeyStore.c"
-#include <parc/algol/parc_SafeMemory.h>
-
-#include <errno.h>
-#include <sys/param.h>
-#include <fcntl.h>
-
-#include <parc/security/parc_SymmetricKeySigner.h>
-
-#include <LongBow/unit-test.h>
-
-LONGBOW_TEST_RUNNER(parc_SymmetricSignerFileStore)
-{
- // The following Test Fixtures will run their corresponding Test Cases.
- // Test Fixtures are run in the order specified, but all tests should be idempotent.
- // Never rely on the execution order of tests or share state between them.
- LONGBOW_RUN_TEST_FIXTURE(Global);
- LONGBOW_RUN_TEST_FIXTURE(Local);
-}
-
-// The Test Runner calls this function once before any Test Fixtures are run.
-LONGBOW_TEST_RUNNER_SETUP(parc_SymmetricSignerFileStore)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(parc_SymmetricSignerFileStore)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Global)
-{
- LONGBOW_RUN_TEST_CASE(Global, parcSymmetricKeyStore_Create);
- LONGBOW_RUN_TEST_CASE(Global, parcSymmetricKeyStore_CreateKey);
-// LONGBOW_RUN_TEST_CASE(Global, parcSymmetricKeyStore_CreateFail);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- parcMemory_SetInterface(&PARCSafeMemoryAsPARCMemory);
- parcSecurity_Init();
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- parcSecurity_Fini();
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Global, parcSymmetricKeyStore_Create)
-{
- char dirname[] = "/tmp/pubkeystore_XXXXXX";
- char filename[MAXPATHLEN];
-
- char *tmp_dirname = mkdtemp(dirname);
- assertNotNull(tmp_dirname, "tmp_dirname should not be null");
- sprintf(filename, "%s/pubkeystore.p12", tmp_dirname);
-
- PARCBuffer *secret_key = parcSymmetricKeyStore_CreateKey(256);
-
- PARCSymmetricKeyStore *symmetricKeyStore = parcSymmetricKeyStore_Create(secret_key);
- PARCSymmetricKeySigner *privateKeySigner = parcSymmetricKeySigner_Create(symmetricKeyStore, PARCCryptoHashType_SHA256);
- PARCSigner *signer = parcSigner_Create(privateKeySigner, PARCSymmetricKeySignerAsSigner);
- parcSymmetricKeySigner_Release(&privateKeySigner);
-
- parcSymmetricKeyStore_Release(&symmetricKeyStore);
- parcSigner_Release(&signer);
- parcBuffer_Release(&secret_key);
-}
-
-LONGBOW_TEST_CASE(Global, parcSymmetricKeyStore_CreateKey)
-{
- PARCBuffer *bb = parcSymmetricKeyStore_CreateKey(256);
- assertTrue(parcBuffer_Remaining(bb) == 32, "Key wrong length expected %d got %zu", 32, parcBuffer_Position(bb));
- parcBuffer_Release(&bb);
-}
-
-LONGBOW_TEST_CASE_EXPECTS(Global, parcSymmetricKeyStore_CreateFail, .event = &LongBowTrapIllegalValue)
-{
- PARCBuffer *key = parcSymmetricKeyStore_CreateKey(256);
- PARCSymmetricKeyStore *symmetricKeyStore = parcSymmetricKeyStore_Create(key);
- PARCSymmetricKeySigner *privateKeySigner = parcSymmetricKeySigner_Create(symmetricKeyStore, PARCCryptoHashType_CRC32C);
-
- // fail.
-
- parcSymmetricKeyStore_Release(&symmetricKeyStore);
- parcSymmetricKeySigner_Release(&privateKeySigner);
- parcBuffer_Release(&key);
-}
-
-// ==========================================
-
-LONGBOW_TEST_FIXTURE(Local)
-{
- LONGBOW_RUN_TEST_CASE(Local, parcSymmetricKeyStore_GetCryptoHashType);
- LONGBOW_RUN_TEST_CASE(Local, parcSymmetricKeyStore_GetSecretKeyDigest);
- LONGBOW_RUN_TEST_CASE(Local, parcSymmetricKeyStore_GetSigningAlgorithm);
- LONGBOW_RUN_TEST_CASE(Local, parcSymmetricKeyStore_SignDigest_sha256);
- LONGBOW_RUN_TEST_CASE(Local, parcSymmetricKeyStore_SignDigest_sha512);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Local)
-{
- parcSecurity_Init();
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Local)
-{
- parcSecurity_Fini();
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Local, parcSymmetricKeyStore_GetCryptoHashType)
-{
- PARCBuffer *secret_key = parcSymmetricKeyStore_CreateKey(256);
-
- PARCSymmetricKeyStore *symmetricKeyStore = parcSymmetricKeyStore_Create(secret_key);
- PARCSymmetricKeySigner *privateKeySigner = parcSymmetricKeySigner_Create(symmetricKeyStore, PARCCryptoHashType_SHA256);
- PARCSigner *signer = parcSigner_Create(privateKeySigner, PARCSymmetricKeySignerAsSigner);
- parcSymmetricKeySigner_Release(&privateKeySigner);
-
- PARCCryptoHashType hashType = parcSigner_GetCryptoHashType(signer);
- assertTrue(hashType == PARCCryptoHashType_SHA256,
- "Got wrong hash Type, expected %d got %d", PARCCryptoHashType_SHA256, hashType);
-
- parcSymmetricKeyStore_Release(&symmetricKeyStore);
- parcSigner_Release(&signer);
- parcBuffer_Release(&secret_key);
-}
-
-LONGBOW_TEST_CASE(Local, parcSymmetricKeyStore_GetSecretKeyDigest)
-{
- int fd;
- uint8_t key_buffer[128];
- uint8_t key_sha256[128];
- ssize_t read_len;
-
- fd = open("test_symmetric_key.bin", O_RDONLY);
- read_len = read(fd, key_buffer, sizeof(key_buffer));
- assertTrue(read_len == 32, "read wrong size, expected 32, got %zd", read_len);
- close(fd);
-
- fd = open("test_symmetric_key.sha256", O_RDONLY);
- read_len = read(fd, key_sha256, sizeof(key_sha256));
- assertTrue(read_len == 32, "read wrong size, expected 32, got %zd", read_len);
- close(fd);
-
- PARCBufferComposer *composer = parcBufferComposer_Create();
- parcBufferComposer_PutArray(composer, key_buffer, 32);
- PARCBuffer *secret_key = parcBufferComposer_ProduceBuffer(composer);
-
- PARCBufferComposer *composer2 = parcBufferComposer_Create();
- parcBufferComposer_PutArray(composer2, key_sha256, 32);
- PARCBuffer *secret_sha = parcBufferComposer_ProduceBuffer(composer2);
-
- PARCSymmetricKeyStore *symmetricKeyStore = parcSymmetricKeyStore_Create(secret_key);
- PARCSymmetricKeySigner *privateKeySigner = parcSymmetricKeySigner_Create(symmetricKeyStore, PARCCryptoHashType_SHA256);
- PARCSigner *signer = parcSigner_Create(privateKeySigner, PARCSymmetricKeySignerAsSigner);
- parcSymmetricKeySigner_Release(&privateKeySigner);
-
- PARCCryptoHash *key_hash = parcKeyStore_GetVerifierKeyDigest(parcSigner_GetKeyStore(signer));
- assertTrue(parcBuffer_Equals(parcCryptoHash_GetDigest(key_hash), secret_sha),
- "sha256 digests of secret key did not match");
- parcCryptoHash_Release(&key_hash);
-
- parcSymmetricKeyStore_Release(&symmetricKeyStore);
- parcBuffer_Release(&secret_sha);
- parcBufferComposer_Release(&composer);
- parcBuffer_Release(&secret_key);
- parcBufferComposer_Release(&composer2);
- parcSigner_Release(&signer);
-}
-
-LONGBOW_TEST_CASE(Local, parcSymmetricKeyStore_GetSigningAlgorithm)
-{
- PARCBuffer *secret_key = parcSymmetricKeyStore_CreateKey(256);
-
- PARCSymmetricKeyStore *symmetricKeyStore = parcSymmetricKeyStore_Create(secret_key);
- PARCSymmetricKeySigner *privateKeySigner = parcSymmetricKeySigner_Create(symmetricKeyStore, PARCCryptoHashType_SHA256);
- PARCSigner *signer = parcSigner_Create(privateKeySigner, PARCSymmetricKeySignerAsSigner);
- parcSymmetricKeySigner_Release(&privateKeySigner);
-
- PARCSigningAlgorithm alg = parcSigner_GetSigningAlgorithm(signer);
- assertTrue(alg == PARCSigningAlgorithm_HMAC,
- "Got wrong signing algorithm, expected %d got %d", PARCSigningAlgorithm_HMAC, alg);
-
- parcSymmetricKeyStore_Release(&symmetricKeyStore);
- parcSigner_Release(&signer);
- parcBuffer_Release(&secret_key);
-}
-
-LONGBOW_TEST_CASE(Local, parcSymmetricKeyStore_SignDigest_sha256)
-{
- uint8_t to_digest_buffer[MAXPATHLEN];
- ssize_t to_digest_length;
- uint8_t true_hmac_buffer[MAXPATHLEN];
- char key[] = "apple_pie_is_good";
-
- PARCBufferComposer *composer = parcBufferComposer_Create();
- parcBufferComposer_PutString(composer, key);
- PARCBuffer *key_buffer = parcBufferComposer_ProduceBuffer(composer);
-
- int fd = open("test_random_bytes", O_RDONLY);
- assertTrue(fd > 0, "Could not open input file: %s", strerror(errno));
- to_digest_length = read(fd, to_digest_buffer, sizeof(to_digest_buffer));
- assertTrue(to_digest_length > 0, "Could not read input file: %s", strerror(errno));
- close(fd);
-
- fd = open("test_random_bytes.hmac_sha256", O_RDONLY);
- assertTrue(fd > 0, "Could not open input file: %s", strerror(errno));
- ssize_t true_hmac_length = read(fd, true_hmac_buffer, sizeof(true_hmac_buffer));
- assertTrue(true_hmac_length > 0, "Could not read input file: %s", strerror(errno));
- close(fd);
-
- PARCBufferComposer *composer2 = parcBufferComposer_Create();
- parcBufferComposer_PutArray(composer2, true_hmac_buffer, true_hmac_length);
- PARCBuffer *true_hash = parcBufferComposer_ProduceBuffer(composer2);
-
- PARCSymmetricKeyStore *symmetricKeyStore = parcSymmetricKeyStore_Create(key_buffer);
- PARCSymmetricKeySigner *privateKeySigner = parcSymmetricKeySigner_Create(symmetricKeyStore, PARCCryptoHashType_SHA256);
- PARCSigner *signer = parcSigner_Create(privateKeySigner, PARCSymmetricKeySignerAsSigner);
- parcSymmetricKeySigner_Release(&privateKeySigner);
-
- PARCCryptoHasher *hasher = parcSigner_GetCryptoHasher(signer);
- parcCryptoHasher_Init(hasher);
- parcCryptoHasher_UpdateBytes(hasher, to_digest_buffer, to_digest_length);
- PARCCryptoHash *hash = parcCryptoHasher_Finalize(hasher);
- PARCSignature *sig = parcSigner_SignDigest(signer, hash);
-
- assertTrue(parcBuffer_Equals(parcSignature_GetSignature(sig), parcCryptoHash_GetDigest(hash)),
- "Hashes are not equal");
- assertTrue(parcBuffer_Equals(parcSignature_GetSignature(sig), true_hash),
- "Hash does not match file");
- assertTrue(parcSignature_GetSigningAlgorithm(sig) == PARCSigningAlgorithm_HMAC,
- "Signing alg incorrect, expected %d got %d",
- PARCSigningAlgorithm_HMAC, parcSignature_GetSigningAlgorithm(sig));
- assertTrue(parcSignature_GetHashType(sig) == PARCCryptoHashType_SHA256,
- "Digest alg incorrect, expected %d got %d",
- PARCCryptoHashType_SHA256, parcSignature_GetSigningAlgorithm(sig));
-
- parcSymmetricKeyStore_Release(&symmetricKeyStore);
- parcSignature_Release(&sig);
- parcCryptoHash_Release(&hash);
- parcBuffer_Release(&true_hash);
- parcBuffer_Release(&key_buffer);
- parcBufferComposer_Release(&composer);
- parcBufferComposer_Release(&composer2);
- parcSigner_Release(&signer);
-}
-
-LONGBOW_TEST_CASE(Local, parcSymmetricKeyStore_SignDigest_sha512)
-{
- char key[] = "apple_pie_is_good";
-
- PARCBufferComposer *composer = parcBufferComposer_Create();
- parcBufferComposer_PutString(composer, key);
- PARCBuffer *key_buffer = parcBufferComposer_ProduceBuffer(composer);
-
- int fd;
- uint8_t to_digest_buffer[MAXPATHLEN];
- ssize_t to_digest_length;
-
- uint8_t true_hmac_buffer[MAXPATHLEN];
- ssize_t true_hmac_length;
-
- fd = open("test_random_bytes", O_RDONLY);
- assertTrue(fd > 0, "Could not open input file: %s", strerror(errno));
- to_digest_length = read(fd, to_digest_buffer, sizeof(to_digest_buffer));
- assertTrue(to_digest_length > 0, "Could not read input file: %s", strerror(errno));
- close(fd);
-
- fd = open("test_random_bytes.hmac_sha512", O_RDONLY);
- assertTrue(fd > 0, "Could not open input file: %s", strerror(errno));
- true_hmac_length = read(fd, true_hmac_buffer, sizeof(true_hmac_buffer));
- assertTrue(true_hmac_length > 0, "Could not read input file: %s", strerror(errno));
- close(fd);
-
- PARCBufferComposer *composer2 = parcBufferComposer_Create();
- parcBufferComposer_PutArray(composer2, true_hmac_buffer, true_hmac_length);
- PARCBuffer *true_hash = parcBufferComposer_ProduceBuffer(composer2);
-
- PARCSymmetricKeyStore *symmetricKeyStore = parcSymmetricKeyStore_Create(key_buffer);
- PARCSymmetricKeySigner *privateKeySigner = parcSymmetricKeySigner_Create(symmetricKeyStore, PARCCryptoHashType_SHA512);
- PARCSigner *signer = parcSigner_Create(privateKeySigner, PARCSymmetricKeySignerAsSigner);
- parcSymmetricKeySigner_Release(&privateKeySigner);
-
- PARCCryptoHasher *hasher = parcSigner_GetCryptoHasher(signer);
- parcCryptoHasher_Init(hasher);
- parcCryptoHasher_UpdateBytes(hasher, to_digest_buffer, to_digest_length);
- PARCCryptoHash *hash = parcCryptoHasher_Finalize(hasher);
- PARCSignature *sig = parcSigner_SignDigest(signer, hash);
-
- assertTrue(parcBuffer_Equals(parcSignature_GetSignature(sig), parcCryptoHash_GetDigest(hash)),
- "Hashes are not equal");
- assertTrue(parcBuffer_Equals(parcSignature_GetSignature(sig), true_hash),
- "Hash does not match file");
- assertTrue(parcSignature_GetSigningAlgorithm(sig) == PARCSigningAlgorithm_HMAC,
- "Signing alg incorrect, expected %d got %d",
- PARCSigningAlgorithm_HMAC, parcSignature_GetSigningAlgorithm(sig));
- assertTrue(parcSignature_GetHashType(sig) == PARCCryptoHashType_SHA512,
- "Digest alg incorrect, expected %d got %d",
- PARCCryptoHashType_SHA512, parcSignature_GetSigningAlgorithm(sig));
-
- parcSymmetricKeyStore_Release(&symmetricKeyStore);
- parcSignature_Release(&sig);
- parcCryptoHash_Release(&hash);
- parcBuffer_Release(&true_hash);
- parcBuffer_Release(&key_buffer);
- parcBufferComposer_Release(&composer);
- parcBufferComposer_Release(&composer2);
- parcSigner_Release(&signer);
-}
-
-int
-main(int argc, char *argv[])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(parc_SymmetricSignerFileStore);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_Verifier.c b/libparc/parc/security/test/test_parc_Verifier.c
deleted file mode 100755
index fe382a9b..00000000
--- a/libparc/parc/security/test/test_parc_Verifier.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-// Include the file(s) containing the functions to be tested.
-// This permits internal static functions to be visible to this Test Framework.
-#include "../parc_Verifier.c"
-
-#include <LongBow/unit-test.h>
-
-LONGBOW_TEST_RUNNER(parc_Verifier)
-{
- // The following Test Fixtures will run their corresponding Test Cases.
- // Test Fixtures are run in the order specified, but all tests should be idempotent.
- // Never rely on the execution order of tests or share state between them.
- LONGBOW_RUN_TEST_FIXTURE(Global);
- LONGBOW_RUN_TEST_FIXTURE(Local);
-}
-
-// The Test Runner calls this function once before any Test Fixtures are run.
-LONGBOW_TEST_RUNNER_SETUP(parc_Verifier)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(parc_Verifier)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Global)
-{
- LONGBOW_RUN_TEST_CASE(Global, parcVerifier_AddKey);
- LONGBOW_RUN_TEST_CASE(Global, parcVerifier_AllowedCryptoSuite);
- LONGBOW_RUN_TEST_CASE(Global, parcVerifier_Create);
- LONGBOW_RUN_TEST_CASE(Global, parcVerifier_Destroy);
- LONGBOW_RUN_TEST_CASE(Global, parcVerifier_GetCryptoHasher);
- LONGBOW_RUN_TEST_CASE(Global, parcVerifier_RemoveKeyId);
- LONGBOW_RUN_TEST_CASE(Global, parcVerifier_VerifySignature);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Global, parcVerifier_AddKey)
-{
- testUnimplemented("");
-}
-
-LONGBOW_TEST_CASE(Global, parcVerifier_AllowedCryptoSuite)
-{
- testUnimplemented("");
-}
-
-LONGBOW_TEST_CASE(Global, parcVerifier_Create)
-{
- testUnimplemented("");
-}
-
-LONGBOW_TEST_CASE(Global, parcVerifier_Destroy)
-{
- testUnimplemented("");
-}
-
-LONGBOW_TEST_CASE(Global, parcVerifier_GetCryptoHasher)
-{
- testUnimplemented("");
-}
-
-LONGBOW_TEST_CASE(Global, parcVerifier_RemoveKeyId)
-{
- testUnimplemented("");
-}
-
-LONGBOW_TEST_CASE(Global, parcVerifier_VerifySignature)
-{
- testUnimplemented("");
-}
-
-LONGBOW_TEST_FIXTURE(Local)
-{
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Local)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Local)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-int
-main(int argc, char *argv[])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(parc_Verifier);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner, NULL);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_parc_X509Certificate.c b/libparc/parc/security/test/test_parc_X509Certificate.c
deleted file mode 100755
index dda9a9ff..00000000
--- a/libparc/parc/security/test/test_parc_X509Certificate.c
+++ /dev/null
@@ -1,244 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <config.h>
-#include <stdio.h>
-#include <LongBow/unit-test.h>
-
-#include <unistd.h>
-#include <fcntl.h>
-
-#include "../parc_X509Certificate.c"
-#include <parc/algol/parc_SafeMemory.h>
-#include <parc/security/parc_CryptoHashType.h>
-#include <parc/algol/parc_Buffer.h>
-
-LONGBOW_TEST_RUNNER(parc_X509Certificate)
-{
- // The following Test Fixtures will run their corresponding Test Cases.
- // Test Fixtures are run in the order specified, but all tests should be idempotent.
- // Never rely on the execution order of tests or share state between them.
- LONGBOW_RUN_TEST_FIXTURE(Global);
-}
-
-LONGBOW_TEST_RUNNER_SETUP(parc_X509Certificate)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-// The Test Runner calls this function once after all the Test Fixtures are run.
-LONGBOW_TEST_RUNNER_TEARDOWN(parc_X509Certificate)
-{
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE(Global)
-{
- LONGBOW_RUN_TEST_CASE(Global, parc_X509Certificate_AcquireRelease);
- LONGBOW_RUN_TEST_CASE(Global, parc_X509Certificate_Create);
- LONGBOW_RUN_TEST_CASE(Global, parc_X509Certificate_CreateFromDERBuffer);
- LONGBOW_RUN_TEST_CASE(Global, parc_X509Certificate_GetPublicKeyDigest);
- LONGBOW_RUN_TEST_CASE(Global, parc_X509Certificate_GetCertificateDigest);
- LONGBOW_RUN_TEST_CASE(Global, parc_X509Certificate_GetDEREncodedCertificate);
- LONGBOW_RUN_TEST_CASE(Global, parc_X509Certificate_GetDEREncodedPublicKey);
- LONGBOW_RUN_TEST_CASE(Global, parc_X509Certificate_CreateSelfSignedCertificate_RSA);
- LONGBOW_RUN_TEST_CASE(Global, parc_X509Certificate_CreateSelfSignedCertificate_EC);
-}
-
-LONGBOW_TEST_FIXTURE_SETUP(Global)
-{
- parcSecurity_Init();
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_FIXTURE_TEARDOWN(Global)
-{
- parcSecurity_Fini();
- if (parcSafeMemory_ReportAllocation(STDOUT_FILENO) != 0) {
- printf("('%s' leaks memory by %d (allocs - frees)) ", longBowTestCase_GetName(testCase), parcMemory_Outstanding());
- return LONGBOW_STATUS_MEMORYLEAK;
- }
- return LONGBOW_STATUS_SUCCEEDED;
-}
-
-LONGBOW_TEST_CASE(Global, parc_X509Certificate_AcquireRelease)
-{
- char *fileName = "test.pem";
- PARCX509Certificate *certificate = parcX509Certificate_CreateFromPEMFile(fileName);
- assertNotNull(certificate, "Expected non-NULL certificate");
-
- PARCReferenceCount firstCount = parcObject_GetReferenceCount(certificate);
- PARCX509Certificate *copy = parcX509Certificate_Acquire(certificate);
- PARCReferenceCount secondCount = parcObject_GetReferenceCount(copy);
-
- assertTrue(firstCount == (secondCount - 1), "Expected incremented reference count after Acquire");
-
- parcX509Certificate_Release(&copy);
- PARCReferenceCount thirdCount = parcObject_GetReferenceCount(certificate);
-
- assertTrue(firstCount == thirdCount, "Expected equal reference counts after Release");
-
- parcX509Certificate_Release(&certificate);
-}
-
-LONGBOW_TEST_CASE(Global, parc_X509Certificate_Create)
-{
- char *fileName = "bad.pem";
- PARCX509Certificate *certificate = _parcX509Certificate_CreateFromPEMFile(fileName);
- assertNull(certificate, "Expected NULL certificate with non-existent file");
-}
-
-LONGBOW_TEST_CASE(Global, parc_X509Certificate_CreateSelfSignedCertificate_EC)
-{
- PARCBuffer *privateKeyBuffer = NULL;
- PARCX509Certificate *certificate = _createSelfSignedCertificate_EC(&privateKeyBuffer, "TEST", 256, 180);
- assertNotNull(certificate, "Expected non-NULL EC certificate");
- parcBuffer_Release(&privateKeyBuffer);
- parcX509Certificate_Release(&certificate);
-}
-
-LONGBOW_TEST_CASE(Global, parc_X509Certificate_CreateSelfSignedCertificate_RSA)
-{
- PARCBuffer *privateKeyBuffer = NULL;
- PARCX509Certificate *certificate = _createSelfSignedCertificate_RSA(&privateKeyBuffer, "TEST", 1024, 180);
- assertNotNull(certificate, "Expected non-NULL RSA certificate");
- parcBuffer_Release(&privateKeyBuffer);
- parcX509Certificate_Release(&certificate);
-}
-
-LONGBOW_TEST_CASE(Global, parc_X509Certificate_CreateFromDERBuffer)
-{
- char *fileName = "test.pem";
- PARCX509Certificate *certificate = _parcX509Certificate_CreateFromPEMFile(fileName);
- assertNotNull(certificate, "Expected non-NULL certificate");
-
- PARCBuffer *certificateBuffer = _getDEREncodedCertificate(certificate);
- PARCX509Certificate *realCertificate = parcX509Certificate_CreateFromDERBuffer(certificateBuffer);
- assertNotNull(realCertificate, "Expected non-NULL certificate to be parsed from DER buffer");
-
- parcX509Certificate_Release(&certificate);
- parcX509Certificate_Release(&realCertificate);
-}
-
-LONGBOW_TEST_CASE(Global, parc_X509Certificate_GetPublicKeyDigest)
-{
- char *fileName = "test.pem";
- PARCX509Certificate *certificate = _parcX509Certificate_CreateFromPEMFile(fileName);
-
- PARCCryptoHash *digest = _getPublicKeyDigest(certificate);
- PARCBuffer *digestBuffer = parcCryptoHash_GetDigest(digest);
-
- size_t expectedLength = SHA256_DIGEST_LENGTH;
- size_t actualLength = parcBuffer_Remaining(digestBuffer);
- assertTrue(actualLength == expectedLength, "Digest unexpected size: got %zu expected %zu", actualLength, expectedLength);
-
- int fd = open("test_pubkey.bin", O_RDONLY);
- uint8_t rawDigest[SHA256_DIGEST_LENGTH];
- ssize_t numBytes = read(fd, rawDigest, SHA256_DIGEST_LENGTH);
- assertTrue(numBytes == SHA256_DIGEST_LENGTH, "Expected to read %d bytes, got %zu", SHA256_DIGEST_LENGTH, numBytes);
- close(fd);
-
- PARCBuffer *rawBuffer = parcBuffer_Flip(parcBuffer_CreateFromArray(rawDigest, SHA256_DIGEST_LENGTH));
-
- assertTrue(parcBuffer_Remaining(rawBuffer) == SHA256_DIGEST_LENGTH, "Expected %d length buffer", SHA256_DIGEST_LENGTH);
-
- parcBuffer_Release(&rawBuffer);
- parcX509Certificate_Release(&certificate);
-}
-
-LONGBOW_TEST_CASE(Global, parc_X509Certificate_GetCertificateDigest)
-{
- char *fileName = "test.pem";
- PARCX509Certificate *certificate = _parcX509Certificate_CreateFromPEMFile(fileName);
-
- PARCCryptoHash *digest = _getCertificateDigest(certificate);
- PARCBuffer *digestBuffer = parcCryptoHash_GetDigest(digest);
-
- size_t expectedLength = SHA256_DIGEST_LENGTH;
- size_t actualLength = parcBuffer_Remaining(digestBuffer);
- assertTrue(actualLength == expectedLength, "Digest unexpected size: got %zu expected %zu", actualLength, expectedLength);
-
- int fd = open("test_crt_sha256.bin", O_RDONLY);
- uint8_t rawDigest[SHA256_DIGEST_LENGTH];
- ssize_t numBytes = read(fd, rawDigest, SHA256_DIGEST_LENGTH);
- assertTrue(numBytes == SHA256_DIGEST_LENGTH, "Expected to read %d bytes, got %zu", SHA256_DIGEST_LENGTH, numBytes);
- close(fd);
-
- PARCBuffer *rawBuffer = parcBuffer_Flip(parcBuffer_CreateFromArray(rawDigest, SHA256_DIGEST_LENGTH));
-
- assertTrue(parcBuffer_Equals(rawBuffer, digestBuffer), "Expected raw binary to equal the computed result.");
-
- parcBuffer_Release(&rawBuffer);
- parcX509Certificate_Release(&certificate);
-}
-
-LONGBOW_TEST_CASE(Global, parc_X509Certificate_GetDEREncodedCertificate)
-{
- char *fileName = "test.pem";
- PARCX509Certificate *certificate = _parcX509Certificate_CreateFromPEMFile(fileName);
-
- PARCBuffer *digestBuffer = _getDEREncodedCertificate(certificate);
-
- size_t expectedLength = 517;
- size_t actualLength = parcBuffer_Remaining(digestBuffer);
- assertTrue(actualLength == expectedLength, "Digest unexpected size: got %zu expected %zu", actualLength, expectedLength);
-
- int fd = open("test_crt_der.bin", O_RDONLY);
- uint8_t rawDigest[expectedLength];
- ssize_t numBytes = read(fd, rawDigest, expectedLength);
- assertTrue(numBytes == expectedLength, "Expected to read %zu bytes, got %zu", expectedLength, numBytes);
- close(fd);
-
- PARCBuffer *rawBuffer = parcBuffer_Flip(parcBuffer_CreateFromArray(rawDigest, expectedLength));
-
- assertTrue(parcBuffer_Equals(rawBuffer, digestBuffer), "Expected raw binary to equal the computed result.");
-
- parcBuffer_Release(&rawBuffer);
- parcX509Certificate_Release(&certificate);
-}
-
-LONGBOW_TEST_CASE(Global, parc_X509Certificate_GetDEREncodedPublicKey)
-{
- char *fileName = "test.pem";
- PARCX509Certificate *certificate = _parcX509Certificate_CreateFromPEMFile(fileName);
-
- PARCBuffer *digestBuffer = _getDEREncodedPublicKey(certificate);
-
- size_t expectedLength = 162;
- size_t actualLength = parcBuffer_Remaining(digestBuffer);
- assertTrue(actualLength == expectedLength, "Digest unexpected size: got %zu expected %zu", actualLength, expectedLength);
-
- int fd = open("test_der.bin", O_RDONLY);
- uint8_t rawDigest[expectedLength];
- ssize_t numBytes = read(fd, rawDigest, expectedLength);
- assertTrue(numBytes == expectedLength, "Expected to read %zu bytes, got %zu", expectedLength, numBytes);
- close(fd);
-
- PARCBuffer *rawBuffer = parcBuffer_Flip(parcBuffer_CreateFromArray(rawDigest, expectedLength));
-
- assertTrue(parcBuffer_Equals(rawBuffer, digestBuffer), "Expected raw binary to equal the computed result.");
-
- parcBuffer_Release(&rawBuffer);
- parcX509Certificate_Release(&certificate);
-}
-
-int
-main(int argc, char *argv[argc])
-{
- LongBowRunner *testRunner = LONGBOW_TEST_RUNNER_CREATE(parc_X509Certificate);
- int exitStatus = LONGBOW_TEST_MAIN(argc, argv, testRunner);
- longBowTestRunner_Destroy(&testRunner);
- exit(exitStatus);
-}
diff --git a/libparc/parc/security/test/test_pubkey.bin b/libparc/parc/security/test/test_pubkey.bin
deleted file mode 100644
index 1d426b87..00000000
--- a/libparc/parc/security/test/test_pubkey.bin
+++ /dev/null
@@ -1 +0,0 @@
-_.yWSfbQИ6u\ob \ No newline at end of file
diff --git a/libparc/parc/security/test/test_pubkey.der b/libparc/parc/security/test/test_pubkey.der
deleted file mode 100644
index eb75e987..00000000
--- a/libparc/parc/security/test/test_pubkey.der
+++ /dev/null
@@ -1,6 +0,0 @@
------BEGIN PUBLIC KEY-----
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDR0t1wjPPlx/x3vMDN/yaClXmp
-NqdIX31oejG4nFQrqH821a6vZjaEEk6jNUM9v4a5mDHdgXQCvSjoRVnfCPVi06j/
-h4oylHaANMSOfcP2AimGBT0R1mT8cBHsI1JmYfhS5jSCzxyyTtq0WVDqndGl0qZp
-cRGONepOxn36uZso2QIDAQAB
------END PUBLIC KEY-----
diff --git a/libparc/parc/security/test/test_pubkey.pem b/libparc/parc/security/test/test_pubkey.pem
deleted file mode 100644
index eb75e987..00000000
--- a/libparc/parc/security/test/test_pubkey.pem
+++ /dev/null
@@ -1,6 +0,0 @@
------BEGIN PUBLIC KEY-----
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDR0t1wjPPlx/x3vMDN/yaClXmp
-NqdIX31oejG4nFQrqH821a6vZjaEEk6jNUM9v4a5mDHdgXQCvSjoRVnfCPVi06j/
-h4oylHaANMSOfcP2AimGBT0R1mT8cBHsI1JmYfhS5jSCzxyyTtq0WVDqndGl0qZp
-cRGONepOxn36uZso2QIDAQAB
------END PUBLIC KEY-----
diff --git a/libparc/parc/security/test/test_random_bytes b/libparc/parc/security/test/test_random_bytes
deleted file mode 100644
index 33a80af5..00000000
--- a/libparc/parc/security/test/test_random_bytes
+++ /dev/null
Binary files differ
diff --git a/libparc/parc/security/test/test_random_bytes.hmac_sha256 b/libparc/parc/security/test/test_random_bytes.hmac_sha256
deleted file mode 100644
index ee066075..00000000
--- a/libparc/parc/security/test/test_random_bytes.hmac_sha256
+++ /dev/null
Binary files differ
diff --git a/libparc/parc/security/test/test_random_bytes.hmac_sha512 b/libparc/parc/security/test/test_random_bytes.hmac_sha512
deleted file mode 100644
index fcd110b2..00000000
--- a/libparc/parc/security/test/test_random_bytes.hmac_sha512
+++ /dev/null
Binary files differ
diff --git a/libparc/parc/security/test/test_random_bytes.sig b/libparc/parc/security/test/test_random_bytes.sig
deleted file mode 100644
index 9c395ce0..00000000
--- a/libparc/parc/security/test/test_random_bytes.sig
+++ /dev/null
Binary files differ
diff --git a/libparc/parc/security/test/test_random_bytes.sig_ec b/libparc/parc/security/test/test_random_bytes.sig_ec
deleted file mode 100644
index 92b210a1..00000000
--- a/libparc/parc/security/test/test_random_bytes.sig_ec
+++ /dev/null
Binary files differ
diff --git a/libparc/parc/security/test/test_rsa.crt b/libparc/parc/security/test/test_rsa.crt
deleted file mode 100644
index 6f7ce9e6..00000000
--- a/libparc/parc/security/test/test_rsa.crt
+++ /dev/null
@@ -1,13 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICATCCAWoCCQDE2fTij4zOkTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJB
-VTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0
-cyBQdHkgTHRkMB4XDTEzMTAxNTIzMjUyNloXDTE0MTAxNTIzMjUyNlowRTELMAkG
-A1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0
-IFdpZGdpdHMgUHR5IEx0ZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAp9aT
-xfFzxhK1+nnF7xiL76rNBAGPg3c/sWahWrk5KrI+MPsR/Ff8ndEvd/Crd61mLCbI
-m1Fvab8mEAYp7suwLF6RDiRCjeZ1oE4EQww+TAZ0Z62Ew+j0xZRzxJ8lqEIGv0UZ
-4pgcNqFDTZtxCOGC3+JPKjw9DzWSrnAn+9LkHicCAwEAATANBgkqhkiG9w0BAQUF
-AAOBgQALNQ1/nNF/jMYijV+XI/IL0/zziaUu2GSyTQlGsmfLhMY0/Qx+8Pbaik+R
-DVtNMZatJGSXgSvx6ETGpkXVdsZzZfDIYSIyKrbf7uV3GFfqCv4IqU2OI42ex7TE
-Ry+xm2mioAYgcnAIxA4CmyTm+tWJ9MTJkCG/aPhhcPxP6XzjPA==
------END CERTIFICATE-----
diff --git a/libparc/parc/security/test/test_rsa.csr b/libparc/parc/security/test/test_rsa.csr
deleted file mode 100644
index 1ff56fc4..00000000
--- a/libparc/parc/security/test/test_rsa.csr
+++ /dev/null
@@ -1,11 +0,0 @@
------BEGIN CERTIFICATE REQUEST-----
-MIIBhDCB7gIBADBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEh
-MB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIGfMA0GCSqGSIb3DQEB
-AQUAA4GNADCBiQKBgQCn1pPF8XPGErX6ecXvGIvvqs0EAY+Ddz+xZqFauTkqsj4w
-+xH8V/yd0S938Kt3rWYsJsibUW9pvyYQBinuy7AsXpEOJEKN5nWgTgRDDD5MBnRn
-rYTD6PTFlHPEnyWoQga/RRnimBw2oUNNm3EI4YLf4k8qPD0PNZKucCf70uQeJwID
-AQABoAAwDQYJKoZIhvcNAQEFBQADgYEAEVdzGyNxqWTRSaBo8JybmHNuXiTLvGPR
-GCegG3GwtTiptzwrtUhOmkWoPkWBwB/rLJyga7sPgg73D5aCz3PsagNSqLytCuW+
-qFJdODd6IXQrJ8fUHsV2SENNbkL+zsg1cYVB0T+8B6BP84hHaD3NResmMVjhuPIr
-0uHYQ7e2ex8=
------END CERTIFICATE REQUEST-----
diff --git a/libparc/parc/security/test/test_rsa.p12 b/libparc/parc/security/test/test_rsa.p12
deleted file mode 100644
index 471c4006..00000000
--- a/libparc/parc/security/test/test_rsa.p12
+++ /dev/null
Binary files differ
diff --git a/libparc/parc/security/test/test_rsa_crt.der b/libparc/parc/security/test/test_rsa_crt.der
deleted file mode 100644
index d79f4b47..00000000
--- a/libparc/parc/security/test/test_rsa_crt.der
+++ /dev/null
Binary files differ
diff --git a/libparc/parc/security/test/test_rsa_crt_sha256.bin b/libparc/parc/security/test/test_rsa_crt_sha256.bin
deleted file mode 100644
index 7da092ff..00000000
--- a/libparc/parc/security/test/test_rsa_crt_sha256.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-VF,-x(SEl/
-:H&64M!:=) \ No newline at end of file
diff --git a/libparc/parc/security/test/test_rsa_key.der b/libparc/parc/security/test/test_rsa_key.der
deleted file mode 100644
index a88e8e94..00000000
--- a/libparc/parc/security/test/test_rsa_key.der
+++ /dev/null
Binary files differ
diff --git a/libparc/parc/security/test/test_rsa_key.pem b/libparc/parc/security/test/test_rsa_key.pem
deleted file mode 100644
index 6c502b15..00000000
--- a/libparc/parc/security/test/test_rsa_key.pem
+++ /dev/null
@@ -1,15 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIICXAIBAAKBgQCn1pPF8XPGErX6ecXvGIvvqs0EAY+Ddz+xZqFauTkqsj4w+xH8
-V/yd0S938Kt3rWYsJsibUW9pvyYQBinuy7AsXpEOJEKN5nWgTgRDDD5MBnRnrYTD
-6PTFlHPEnyWoQga/RRnimBw2oUNNm3EI4YLf4k8qPD0PNZKucCf70uQeJwIDAQAB
-AoGAVOYPA/7aIGSQlu4IOKTDDG3qnM8pSEgG+PbAQgMVrspQ+TfXZj0ftLj++P3N
-zpDw8P6BVUfBQs2FNG/ZwEhaiZVgJAl7cIAxJ9Ac+1oZYSgGyJfb3u9iWvkbMOoj
-83Inx5yyN+Qmk5zceH4pOC5D5cDAuGGZ740Euv4o2/2O3qECQQDTmWZw021PvEbA
-r18O1YfZGxO3zFCwFXCpnHvtSMbP+MXAG5Gt47wZt4Vx1rX9k78beeCUitwqp3d3
-ZI+YlUu3AkEAyw5wssQsJty/n2FL8DbJN3UzUhkcaCFYrKz3RtFye9wu+Bw0TxPC
-3jhFVcynm3nH3ZJN0JsnsPnHXuoQToShEQJATXC51hb6zZC5UDGel348fo9zUvP6
-n8bo+ZoknL3izSBdtyYf1cUgBUVuGDCdYFWfPn4HXDXJx+6MQWzTRON21wJBAMZL
-U8M/z94jtP3wBjiPR/Dggz2pSBRofDAkuVZvM13BqByjbnHK2oIocY1YTlWGl6fJ
-ODR/UEODqS8HZOVIoAECQANcuvVnqDixSIl2ySZvydQytv4DKTbvE0nYSRroYIlJ
-PTOBPy8ynIUkJwc2E1BsLl7V8gO62a5O0ntTwBMnPSQ=
------END RSA PRIVATE KEY-----
diff --git a/libparc/parc/security/test/test_rsa_pub.der b/libparc/parc/security/test/test_rsa_pub.der
deleted file mode 100644
index 7c931999..00000000
--- a/libparc/parc/security/test/test_rsa_pub.der
+++ /dev/null
Binary files differ
diff --git a/libparc/parc/security/test/test_rsa_pub.pem b/libparc/parc/security/test/test_rsa_pub.pem
deleted file mode 100644
index 7b8f29c2..00000000
--- a/libparc/parc/security/test/test_rsa_pub.pem
+++ /dev/null
@@ -1,6 +0,0 @@
------BEGIN PUBLIC KEY-----
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCn1pPF8XPGErX6ecXvGIvvqs0E
-AY+Ddz+xZqFauTkqsj4w+xH8V/yd0S938Kt3rWYsJsibUW9pvyYQBinuy7AsXpEO
-JEKN5nWgTgRDDD5MBnRnrYTD6PTFlHPEnyWoQga/RRnimBw2oUNNm3EI4YLf4k8q
-PD0PNZKucCf70uQeJwIDAQAB
------END PUBLIC KEY-----
diff --git a/libparc/parc/security/test/test_rsa_pub_sha256.bin b/libparc/parc/security/test/test_rsa_pub_sha256.bin
deleted file mode 100644
index c15478cf..00000000
--- a/libparc/parc/security/test/test_rsa_pub_sha256.bin
+++ /dev/null
@@ -1 +0,0 @@
-\#L(P {%ba`v8IθY \ No newline at end of file
diff --git a/libparc/parc/security/test/test_symmetric_key.bin b/libparc/parc/security/test/test_symmetric_key.bin
deleted file mode 100644
index 2ad3409d..00000000
--- a/libparc/parc/security/test/test_symmetric_key.bin
+++ /dev/null
Binary files differ
diff --git a/libparc/parc/security/test/test_symmetric_key.sha256 b/libparc/parc/security/test/test_symmetric_key.sha256
deleted file mode 100644
index 910397cf..00000000
--- a/libparc/parc/security/test/test_symmetric_key.sha256
+++ /dev/null
@@ -1 +0,0 @@
-A_ӻ-;Ȑn.1~072 \ No newline at end of file