Skip to content

Commit 3136f9c

Browse files
authored
Add Digest / MAC / Signer streams, MAC operator infrastructure, and X509Utilities tests (#101)
1 parent 6022133 commit 3136f9c

27 files changed

Lines changed: 2525 additions & 660 deletions

CryptoLib.Benchmark/Delphi/CryptoLib.BenchmarkConsole.dpr

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ uses
6767
ClpDateTimeUtilities in '..\..\CryptoLib\src\GeneralUtilities\ClpDateTimeUtilities.pas',
6868
ClpDefaultDigestCalculator in '..\..\CryptoLib\src\Crypto\Operators\ClpDefaultDigestCalculator.pas',
6969
ClpDefaultDigestResult in '..\..\CryptoLib\src\Crypto\Operators\ClpDefaultDigestResult.pas',
70+
ClpDefaultMacCalculator in '..\..\CryptoLib\src\Crypto\Operators\ClpDefaultMacCalculator.pas',
71+
ClpDefaultMacResult in '..\..\CryptoLib\src\Crypto\Operators\ClpDefaultMacResult.pas',
7072
ClpDefaultSignatureCalculator in '..\..\CryptoLib\src\Crypto\Operators\ClpDefaultSignatureCalculator.pas',
7173
ClpDefaultSignatureResult in '..\..\CryptoLib\src\Crypto\Operators\ClpDefaultSignatureResult.pas',
7274
ClpDefaultVerifierCalculator in '..\..\CryptoLib\src\Crypto\Operators\ClpDefaultVerifierCalculator.pas',
@@ -80,6 +82,7 @@ uses
8082
ClpDigest in '..\..\CryptoLib\src\Crypto\Digests\ClpDigest.pas',
8183
ClpDigestRandomGenerator in '..\..\CryptoLib\src\Rngs\ClpDigestRandomGenerator.pas',
8284
ClpDigestSink in '..\..\CryptoLib\src\Crypto\IO\ClpDigestSink.pas',
85+
ClpDigestStream in '..\..\CryptoLib\src\Crypto\IO\ClpDigestStream.pas',
8386
ClpDigestUtilities in '..\..\CryptoLib\src\Crypto\Digests\ClpDigestUtilities.pas',
8487
ClpDsaDigestSigner in '..\..\CryptoLib\src\Crypto\Signers\ClpDsaDigestSigner.pas',
8588
ClpDsaGenerators in '..\..\CryptoLib\src\Crypto\Generators\ClpDsaGenerators.pas',
@@ -370,6 +373,7 @@ uses
370373
ClpStandardDsaEncoding in '..\..\CryptoLib\src\Crypto\Signers\SignerEncodings\ClpStandardDsaEncoding.pas',
371374
ClpPlainDsaEncoding in '..\..\CryptoLib\src\Crypto\Signers\SignerEncodings\ClpPlainDsaEncoding.pas',
372375
ClpSignerSink in '..\..\CryptoLib\src\Crypto\IO\ClpSignerSink.pas',
376+
ClpSignerStream in '..\..\CryptoLib\src\Crypto\IO\ClpSignerStream.pas',
373377
ClpScalar25519 in '..\..\CryptoLib\src\Math\EC\Rfc8032\ClpScalar25519.pas',
374378
ClpScalarUtilities in '..\..\CryptoLib\src\Math\EC\Rfc8032\ClpScalarUtilities.pas',
375379
ClpSignerUtilities in '..\..\CryptoLib\src\Crypto\Signers\ClpSignerUtilities.pas',
@@ -546,6 +550,8 @@ uses
546550
ClpIPkcs5S1ParametersGenerator in '..\..\CryptoLib\src\Interfaces\Crypto\Generators\ClpIPkcs5S1ParametersGenerator.pas',
547551
ClpBcObjectIdentifiers in '..\..\CryptoLib\src\Asn1\Bc\ClpBcObjectIdentifiers.pas',
548552
ClpCipherStream in '..\..\CryptoLib\src\Crypto\IO\ClpCipherStream.pas',
553+
ClpMacSink in '..\..\CryptoLib\src\Crypto\IO\ClpMacSink.pas',
554+
ClpMacStream in '..\..\CryptoLib\src\Crypto\IO\ClpMacStream.pas',
549555
ClpAlgorithmIdentifierFactory in '..\..\CryptoLib\src\Crypto\Factories\ClpAlgorithmIdentifierFactory.pas',
550556
ClpCipherFactory in '..\..\CryptoLib\src\Crypto\Factories\ClpCipherFactory.pas',
551557
ClpCipherKeyGeneratorFactory in '..\..\CryptoLib\src\Crypto\Factories\ClpCipherKeyGeneratorFactory.pas',

CryptoLib.Examples/Delphi.Examples/CryptoLib.Examples.dpr

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ uses
7272
ClpDateTimeUtilities in '..\..\CryptoLib\src\GeneralUtilities\ClpDateTimeUtilities.pas',
7373
ClpDefaultDigestCalculator in '..\..\CryptoLib\src\Crypto\Operators\ClpDefaultDigestCalculator.pas',
7474
ClpDefaultDigestResult in '..\..\CryptoLib\src\Crypto\Operators\ClpDefaultDigestResult.pas',
75+
ClpDefaultMacCalculator in '..\..\CryptoLib\src\Crypto\Operators\ClpDefaultMacCalculator.pas',
76+
ClpDefaultMacResult in '..\..\CryptoLib\src\Crypto\Operators\ClpDefaultMacResult.pas',
7577
ClpDefaultSignatureCalculator in '..\..\CryptoLib\src\Crypto\Operators\ClpDefaultSignatureCalculator.pas',
7678
ClpDefaultSignatureResult in '..\..\CryptoLib\src\Crypto\Operators\ClpDefaultSignatureResult.pas',
7779
ClpDefaultVerifierCalculator in '..\..\CryptoLib\src\Crypto\Operators\ClpDefaultVerifierCalculator.pas',
@@ -85,6 +87,7 @@ uses
8587
ClpDigest in '..\..\CryptoLib\src\Crypto\Digests\ClpDigest.pas',
8688
ClpDigestRandomGenerator in '..\..\CryptoLib\src\Rngs\ClpDigestRandomGenerator.pas',
8789
ClpDigestSink in '..\..\CryptoLib\src\Crypto\IO\ClpDigestSink.pas',
90+
ClpDigestStream in '..\..\CryptoLib\src\Crypto\IO\ClpDigestStream.pas',
8891
ClpDigestUtilities in '..\..\CryptoLib\src\Crypto\Digests\ClpDigestUtilities.pas',
8992
ClpDsaDigestSigner in '..\..\CryptoLib\src\Crypto\Signers\ClpDsaDigestSigner.pas',
9093
ClpDsaGenerators in '..\..\CryptoLib\src\Crypto\Generators\ClpDsaGenerators.pas',
@@ -375,6 +378,7 @@ uses
375378
ClpStandardDsaEncoding in '..\..\CryptoLib\src\Crypto\Signers\SignerEncodings\ClpStandardDsaEncoding.pas',
376379
ClpPlainDsaEncoding in '..\..\CryptoLib\src\Crypto\Signers\SignerEncodings\ClpPlainDsaEncoding.pas',
377380
ClpSignerSink in '..\..\CryptoLib\src\Crypto\IO\ClpSignerSink.pas',
381+
ClpSignerStream in '..\..\CryptoLib\src\Crypto\IO\ClpSignerStream.pas',
378382
ClpScalar25519 in '..\..\CryptoLib\src\Math\EC\Rfc8032\ClpScalar25519.pas',
379383
ClpScalarUtilities in '..\..\CryptoLib\src\Math\EC\Rfc8032\ClpScalarUtilities.pas',
380384
ClpSignerUtilities in '..\..\CryptoLib\src\Crypto\Signers\ClpSignerUtilities.pas',
@@ -551,6 +555,8 @@ uses
551555
ClpIPkcs5S1ParametersGenerator in '..\..\CryptoLib\src\Interfaces\Crypto\Generators\ClpIPkcs5S1ParametersGenerator.pas',
552556
ClpBcObjectIdentifiers in '..\..\CryptoLib\src\Asn1\Bc\ClpBcObjectIdentifiers.pas',
553557
ClpCipherStream in '..\..\CryptoLib\src\Crypto\IO\ClpCipherStream.pas',
558+
ClpMacSink in '..\..\CryptoLib\src\Crypto\IO\ClpMacSink.pas',
559+
ClpMacStream in '..\..\CryptoLib\src\Crypto\IO\ClpMacStream.pas',
554560
ClpAlgorithmIdentifierFactory in '..\..\CryptoLib\src\Crypto\Factories\ClpAlgorithmIdentifierFactory.pas',
555561
ClpCipherFactory in '..\..\CryptoLib\src\Crypto\Factories\ClpCipherFactory.pas',
556562
ClpCipherKeyGeneratorFactory in '..\..\CryptoLib\src\Crypto\Factories\ClpCipherKeyGeneratorFactory.pas',

CryptoLib.Tests/Delphi.Tests/CryptoLib.Tests.dpr

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@ uses
8383
ClpDateTimeUtilities in '..\..\CryptoLib\src\GeneralUtilities\ClpDateTimeUtilities.pas',
8484
ClpDefaultDigestCalculator in '..\..\CryptoLib\src\Crypto\Operators\ClpDefaultDigestCalculator.pas',
8585
ClpDefaultDigestResult in '..\..\CryptoLib\src\Crypto\Operators\ClpDefaultDigestResult.pas',
86+
ClpDefaultMacCalculator in '..\..\CryptoLib\src\Crypto\Operators\ClpDefaultMacCalculator.pas',
87+
ClpDefaultMacResult in '..\..\CryptoLib\src\Crypto\Operators\ClpDefaultMacResult.pas',
8688
ClpDefaultSignatureCalculator in '..\..\CryptoLib\src\Crypto\Operators\ClpDefaultSignatureCalculator.pas',
8789
ClpDefaultSignatureResult in '..\..\CryptoLib\src\Crypto\Operators\ClpDefaultSignatureResult.pas',
8890
ClpDefaultVerifierCalculator in '..\..\CryptoLib\src\Crypto\Operators\ClpDefaultVerifierCalculator.pas',
@@ -96,6 +98,7 @@ uses
9698
ClpDigest in '..\..\CryptoLib\src\Crypto\Digests\ClpDigest.pas',
9799
ClpDigestRandomGenerator in '..\..\CryptoLib\src\Rngs\ClpDigestRandomGenerator.pas',
98100
ClpDigestSink in '..\..\CryptoLib\src\Crypto\IO\ClpDigestSink.pas',
101+
ClpDigestStream in '..\..\CryptoLib\src\Crypto\IO\ClpDigestStream.pas',
99102
ClpDigestUtilities in '..\..\CryptoLib\src\Crypto\Digests\ClpDigestUtilities.pas',
100103
ClpDsaDigestSigner in '..\..\CryptoLib\src\Crypto\Signers\ClpDsaDigestSigner.pas',
101104
ClpDsaGenerators in '..\..\CryptoLib\src\Crypto\Generators\ClpDsaGenerators.pas',
@@ -386,6 +389,7 @@ uses
386389
ClpStandardDsaEncoding in '..\..\CryptoLib\src\Crypto\Signers\SignerEncodings\ClpStandardDsaEncoding.pas',
387390
ClpPlainDsaEncoding in '..\..\CryptoLib\src\Crypto\Signers\SignerEncodings\ClpPlainDsaEncoding.pas',
388391
ClpSignerSink in '..\..\CryptoLib\src\Crypto\IO\ClpSignerSink.pas',
392+
ClpSignerStream in '..\..\CryptoLib\src\Crypto\IO\ClpSignerStream.pas',
389393
ClpScalar25519 in '..\..\CryptoLib\src\Math\EC\Rfc8032\ClpScalar25519.pas',
390394
ClpScalarUtilities in '..\..\CryptoLib\src\Math\EC\Rfc8032\ClpScalarUtilities.pas',
391395
ClpSignerUtilities in '..\..\CryptoLib\src\Crypto\Signers\ClpSignerUtilities.pas',
@@ -562,6 +566,8 @@ uses
562566
ClpIPkcs5S1ParametersGenerator in '..\..\CryptoLib\src\Interfaces\Crypto\Generators\ClpIPkcs5S1ParametersGenerator.pas',
563567
ClpBcObjectIdentifiers in '..\..\CryptoLib\src\Asn1\Bc\ClpBcObjectIdentifiers.pas',
564568
ClpCipherStream in '..\..\CryptoLib\src\Crypto\IO\ClpCipherStream.pas',
569+
ClpMacSink in '..\..\CryptoLib\src\Crypto\IO\ClpMacSink.pas',
570+
ClpMacStream in '..\..\CryptoLib\src\Crypto\IO\ClpMacStream.pas',
565571
ClpAlgorithmIdentifierFactory in '..\..\CryptoLib\src\Crypto\Factories\ClpAlgorithmIdentifierFactory.pas',
566572
ClpCipherFactory in '..\..\CryptoLib\src\Crypto\Factories\ClpCipherFactory.pas',
567573
ClpCipherKeyGeneratorFactory in '..\..\CryptoLib\src\Crypto\Factories\ClpCipherKeyGeneratorFactory.pas',
@@ -831,13 +837,15 @@ uses
831837
Pkcs10CertRequestTests in '..\src\Asn1\Pkcs\Pkcs10CertRequestTests.pas',
832838
DeltaCertificateTests in '..\src\Asn1\X509\DeltaCertificateTests.pas',
833839
X509CertGenTests in '..\src\X509\X509CertGenTests.pas',
840+
X509UtilitiesTests in '..\src\X509\X509UtilitiesTests.pas',
834841
CertTests in '..\src\Others\CertTests.pas',
835842
Curve25519KeyUtilitiesTests in '..\src\Others\Curve25519KeyUtilitiesTests.pas',
836843
OpenSslReaderTests in '..\src\OpenSsl\OpenSslReaderTests.pas',
837844
OpenSslWriterTests in '..\src\OpenSsl\OpenSslWriterTests.pas',
838845
EncryptedPrivateKeyInfoTests in '..\src\Asn1\EncryptedPrivateKeyInfoTests.pas',
839846
PkcsEncryptedPrivateKeyInfoTests in '..\src\Pkcs\PkcsEncryptedPrivateKeyInfoTests.pas',
840-
CipherStreamTests in '..\src\Crypto\CipherStreamTests.pas',
847+
CryptoIOStreamTests in '..\src\Crypto\CryptoIOStreamTests.pas',
848+
CryptoIOSinkTests in '..\src\Crypto\CryptoIOSinkTests.pas',
841849
ParameterUtilitiesTests in '..\src\Security\ParameterUtilitiesTests.pas',
842850
OaepTests in '..\src\Crypto\OaepTests.pas',
843851
EaxTests in '..\src\Crypto\EaxTests.pas',

CryptoLib.Tests/FreePascal.Tests/CryptoLib.Tests.lpi

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@
7979
<PackageName Value="FCL"/>
8080
</Item4>
8181
</RequiredPackages>
82-
<Units Count="151">
82+
<Units Count="153">
8383
<Unit0>
8484
<Filename Value="CryptoLib.lpr"/>
8585
<IsPartOfProject Value="True"/>
@@ -474,7 +474,7 @@
474474
<IsPartOfProject Value="True"/>
475475
</Unit97>
476476
<Unit98>
477-
<Filename Value="..\src\Crypto\CipherStreamTests.pas"/>
477+
<Filename Value="..\src\Crypto\CryptoIOStreamTests.pas"/>
478478
<IsPartOfProject Value="True"/>
479479
</Unit98>
480480
<Unit99>
@@ -685,6 +685,14 @@
685685
<Filename Value="..\src\Misc\SimdSelectSlotTests.pas"/>
686686
<IsPartOfProject Value="True"/>
687687
</Unit150>
688+
<Unit151>
689+
<Filename Value="..\src\Crypto\CryptoIOSinkTests.pas"/>
690+
<IsPartOfProject Value="True"/>
691+
</Unit151>
692+
<Unit152>
693+
<Filename Value="..\src\X509\X509UtilitiesTests.pas"/>
694+
<IsPartOfProject Value="True"/>
695+
</Unit152>
688696
</Units>
689697
</ProjectOptions>
690698
<CompilerOptions>

CryptoLib.Tests/FreePascal.Tests/CryptoLib.lpr

Lines changed: 26 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -5,45 +5,43 @@
55
uses
66
Interfaces, Forms, GuiTestRunner, Asn1SequenceParserTests,
77
EqualsAndHashCodeTests, OIDTests, EnumeratedTests, ExternalTests,
8-
ParsingTests, ParseTests,
9-
StringTests, TagTests, BigIntegerTests, ECAlgorithmsTests, ECPointTests,
10-
SecP256R1FieldTests, SecP384R1FieldTests, ECDsa5Tests, ECTests,
11-
NamedCurveTests, SignerUtilitiesTests, SecureRandomTests,
12-
DigestRandomNumberTests, FixedPointTests, NistSp80038aAesTestData, AESTests,
13-
AesLightTests, FusedExternalRegistrationTests,
14-
AesX86Tests, AESSICTests, SicBulkParityTests, EcbBulkParityTests,
15-
CbcBulkParityTests, SpeckCryptoPPTestData, SpeckBlockCipherTestBase,
16-
SpeckLegacyTests, SpeckTests,
17-
IESCipherTests, MD5HMacTests, SHA1HMacTests, SHA224HMacTests, SHA256HMacTests,
8+
ParsingTests, ParseTests, StringTests, TagTests, BigIntegerTests,
9+
ECAlgorithmsTests, ECPointTests, SecP256R1FieldTests, SecP384R1FieldTests,
10+
ECDsa5Tests, ECTests, NamedCurveTests, SignerUtilitiesTests,
11+
SecureRandomTests, DigestRandomNumberTests, FixedPointTests,
12+
NistSp80038aAesTestData, AESTests, AesLightTests,
13+
FusedExternalRegistrationTests, AesX86Tests, AESSICTests, SicBulkParityTests,
14+
EcbBulkParityTests, CbcBulkParityTests, SpeckCryptoPPTestData,
15+
SpeckBlockCipherTestBase, SpeckLegacyTests, SpeckTests, IESCipherTests,
16+
MD5HMacTests, SHA1HMacTests, SHA224HMacTests, SHA256HMacTests,
1817
SHA384HMacTests, SHA512HMacTests, RIPEMD128HMacTests, RIPEMD160HMacTests,
1918
HMacTests, Pkcs5Tests, HkdfGeneratorTests, ECIESTests, PascalCoinECIESTests,
2019
ECNRTests, PrimesTests, ECEncodingTests, PaddingTests, DSATests,
2120
DeterministicDsaTests, Salsa20Tests, XSalsa20Tests, ChaChaTests,
22-
ChaCha7539ProcessBlocks2Tests,
23-
HChaCha20Tests, XChaCha20Tests, XChaCha20Poly1305Tests,
24-
StreamCipherResetTests, CTSTests, X25519Tests, X448Tests, Ed25519Tests,
25-
Ed448Tests, X25519HigherLevelTests, Ed25519HigherLevelTests,
26-
ShortenedDigestTests, Kdf1GeneratorTests, Kdf2GeneratorTests,
27-
DHKekGeneratorTests, ECDHKekGeneratorTests, Argon2Tests,
21+
ChaCha7539ProcessBlocks2Tests, HChaCha20Tests, XChaCha20Tests,
22+
XChaCha20Poly1305Tests, StreamCipherResetTests, CTSTests, X25519Tests,
23+
X448Tests, Ed25519Tests, Ed448Tests, X25519HigherLevelTests,
24+
Ed25519HigherLevelTests, ShortenedDigestTests, Kdf1GeneratorTests,
25+
Kdf2GeneratorTests, DHKekGeneratorTests, ECDHKekGeneratorTests, Argon2Tests,
2826
ScryptTests, DigestTests, CertTests, Curve25519KeyUtilitiesTests,
2927
Ed448HigherLevelTests, X448HigherLevelTests, Curve448KeyUtilitiesTests,
3028
DigestUtilitiesTests, ParameterUtilitiesTests, DHTests, Asn1IntegerTests,
3129
BitStringTests, GeneralizedTimeTests, OctetStringTests, RelativeOidTests,
3230
UtcTimeTests, InputStreamTests, SetTests, X9Tests, PrivateKeyInfoTests,
3331
DerUtf8StringTests, EncryptedPrivateKeyInfoTests, Pkcs10CertRequestTests,
3432
DeltaCertificateTests, CertificateTests, X509AltTests, X509ExtensionsTests,
35-
AuthorityKeyIdentifierTests,
36-
X509NameTests, SubjectKeyIdentifierTests, KeyUsageTests, GeneralNameTests,
37-
KMacTests, RSATests, PssTests, ISO9796Tests, RSABlindedTests,
38-
RSADigestSignerTests, X931SignerTests, CipherStreamTests, OaepTests,
39-
RijndaelTests, BlowfishTests, Poly1305Tests, MacTests, ChaCha20Poly1305Tests,
40-
OcbTests, CcmTests, EaxTests, CMacTests, AeadTestUtilities, GcmReorderTests,
41-
GCMTests, GcmSivTests, GMacTests, Pkcs12Tests, Bip327MuSig2Tests,
42-
Bip340SchnorrTests, CryptoLibTestBase, SimdSelectSlotTests, PkcsEncryptedPrivateKeyInfoTests,
43-
Pkcs12StoreTests, OpenSslReaderTests, OpenSslWriterTests, X509CertGenTests,
44-
X509CertificatePairTests, ClpFixedSecureRandom, ClpShortenedDigest,
45-
ClpCertTestUtilities, ClpFusedKernelToggle, Int32Tests, Int64Tests,
46-
IPAddressUtilitiesTests, PemReaderTests;
33+
AuthorityKeyIdentifierTests, X509NameTests, SubjectKeyIdentifierTests,
34+
KeyUsageTests, GeneralNameTests, KMacTests, RSATests, PssTests, ISO9796Tests,
35+
RSABlindedTests, RSADigestSignerTests, X931SignerTests, CryptoIOStreamTests,
36+
CryptoIOSinkTests, OaepTests, RijndaelTests, BlowfishTests, Poly1305Tests,
37+
MacTests, ChaCha20Poly1305Tests, OcbTests, CcmTests, EaxTests, CMacTests,
38+
AeadTestUtilities, GcmReorderTests, GCMTests, GcmSivTests, GMacTests,
39+
Pkcs12Tests, Bip327MuSig2Tests, Bip340SchnorrTests, CryptoLibTestBase,
40+
SimdSelectSlotTests, PkcsEncryptedPrivateKeyInfoTests, Pkcs12StoreTests,
41+
OpenSslReaderTests, OpenSslWriterTests, X509CertGenTests,
42+
X509CertificatePairTests, X509UtilitiesTests, ClpFixedSecureRandom,
43+
ClpShortenedDigest, ClpCertTestUtilities, ClpFusedKernelToggle, Int32Tests,
44+
Int64Tests, IPAddressUtilitiesTests, PemReaderTests;
4745

4846
{$R *.res}
4947

CryptoLib.Tests/FreePascal.Tests/CryptoLibConsole.lpi

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
<PackageName Value="FCL"/>
4040
</Item2>
4141
</RequiredPackages>
42-
<Units Count="151">
42+
<Units Count="153">
4343
<Unit0>
4444
<Filename Value="CryptoLibConsole.lpr"/>
4545
<IsPartOfProject Value="True"/>
@@ -433,7 +433,7 @@
433433
<IsPartOfProject Value="True"/>
434434
</Unit97>
435435
<Unit98>
436-
<Filename Value="..\src\Crypto\CipherStreamTests.pas"/>
436+
<Filename Value="..\src\Crypto\CryptoIOStreamTests.pas"/>
437437
<IsPartOfProject Value="True"/>
438438
</Unit98>
439439
<Unit99>
@@ -644,6 +644,14 @@
644644
<Filename Value="..\src\Misc\SimdSelectSlotTests.pas"/>
645645
<IsPartOfProject Value="True"/>
646646
</Unit150>
647+
<Unit151>
648+
<Filename Value="..\src\Crypto\CryptoIOSinkTests.pas"/>
649+
<IsPartOfProject Value="True"/>
650+
</Unit151>
651+
<Unit152>
652+
<Filename Value="..\src\X509\X509UtilitiesTests.pas"/>
653+
<IsPartOfProject Value="True"/>
654+
</Unit152>
647655
</Units>
648656
</ProjectOptions>
649657
<CompilerOptions>

0 commit comments

Comments
 (0)