From 0989e161f60e1729e5680659e325a3a31590cf41 Mon Sep 17 00:00:00 2001 From: Joni Eskelinen Date: Wed, 22 Jun 2016 14:09:57 +0300 Subject: [PATCH] Add withAdditionalExtensions --- .../AttributeCertificateInfo.php | 13 +++++++++++++ test/unit/ac/AttributeCertificateInfoTest.php | 12 ++++++++++++ 2 files changed, 25 insertions(+) diff --git a/lib/X509/AttributeCertificate/AttributeCertificateInfo.php b/lib/X509/AttributeCertificate/AttributeCertificateInfo.php index 180c9c0..079dc1a 100644 --- a/lib/X509/AttributeCertificate/AttributeCertificateInfo.php +++ b/lib/X509/AttributeCertificate/AttributeCertificateInfo.php @@ -9,6 +9,7 @@ use CryptoUtil\ASN1\AlgorithmIdentifier\Feature\SignatureAlgorithmIdentifier; use CryptoUtil\ASN1\PrivateKeyInfo; use CryptoUtil\Crypto\Crypto; +use X509\Certificate\Extension\Extension; use X509\Certificate\Extensions; use X509\Certificate\UniqueIdentifier; @@ -256,6 +257,18 @@ public function withExtensions(Extensions $extensions) { return $obj; } + /** + * Get self with extensions added. + * + * @param Extension ...$exts One or more Extension objects + * @return self + */ + public function withAdditionalExtensions(Extension ...$exts) { + $obj = clone $this; + $obj->_extensions = $obj->_extensions->withExtensions(...$exts); + return $obj; + } + /** * Get version. * diff --git a/test/unit/ac/AttributeCertificateInfoTest.php b/test/unit/ac/AttributeCertificateInfoTest.php index 55cf20e..ccca3a3 100644 --- a/test/unit/ac/AttributeCertificateInfoTest.php +++ b/test/unit/ac/AttributeCertificateInfoTest.php @@ -301,6 +301,18 @@ public function testWithExtensions(AttributeCertificateInfo $aci) { return $aci; } + /** + * @depends testCreate + * + * @param AttributeCertificateInfo $aci + */ + public function testWithAdditionalExtensions(AttributeCertificateInfo $aci) { + $aci = $aci->withAdditionalExtensions( + new AuthorityKeyIdentifierExtension(true, "test")); + $this->assertInstanceOf(AttributeCertificateInfo::class, $aci); + return $aci; + } + /** * @depends testCreateWithAll * @expectedException UnexpectedValueException