first commit
This commit is contained in:
108
pma/vendor/fgrosse/phpasn1/lib/X509/CertificateSubject.php
vendored
Normal file
108
pma/vendor/fgrosse/phpasn1/lib/X509/CertificateSubject.php
vendored
Normal file
@@ -0,0 +1,108 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of the PHPASN1 library.
|
||||
*
|
||||
* Copyright © Friedrich Große <friedrich.grosse@gmail.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace FG\X509;
|
||||
|
||||
use FG\ASN1\Composite\RelativeDistinguishedName;
|
||||
use FG\ASN1\Identifier;
|
||||
use FG\ASN1\OID;
|
||||
use FG\ASN1\Parsable;
|
||||
use FG\ASN1\Composite\RDNString;
|
||||
use FG\ASN1\Universal\Sequence;
|
||||
|
||||
class CertificateSubject extends Sequence implements Parsable
|
||||
{
|
||||
private $commonName;
|
||||
private $email;
|
||||
private $organization;
|
||||
private $locality;
|
||||
private $state;
|
||||
private $country;
|
||||
private $organizationalUnit;
|
||||
|
||||
/**
|
||||
* @param string $commonName
|
||||
* @param string $email
|
||||
* @param string $organization
|
||||
* @param string $locality
|
||||
* @param string $state
|
||||
* @param string $country
|
||||
* @param string $organizationalUnit
|
||||
*/
|
||||
public function __construct($commonName, $email, $organization, $locality, $state, $country, $organizationalUnit)
|
||||
{
|
||||
parent::__construct(
|
||||
new RDNString(OID::COUNTRY_NAME, $country),
|
||||
new RDNString(OID::STATE_OR_PROVINCE_NAME, $state),
|
||||
new RDNString(OID::LOCALITY_NAME, $locality),
|
||||
new RDNString(OID::ORGANIZATION_NAME, $organization),
|
||||
new RDNString(OID::OU_NAME, $organizationalUnit),
|
||||
new RDNString(OID::COMMON_NAME, $commonName),
|
||||
new RDNString(OID::PKCS9_EMAIL, $email)
|
||||
);
|
||||
|
||||
$this->commonName = $commonName;
|
||||
$this->email = $email;
|
||||
$this->organization = $organization;
|
||||
$this->locality = $locality;
|
||||
$this->state = $state;
|
||||
$this->country = $country;
|
||||
$this->organizationalUnit = $organizationalUnit;
|
||||
}
|
||||
|
||||
public function getCommonName()
|
||||
{
|
||||
return $this->commonName;
|
||||
}
|
||||
|
||||
public function getEmail()
|
||||
{
|
||||
return $this->email;
|
||||
}
|
||||
|
||||
public function getOrganization()
|
||||
{
|
||||
return $this->organization;
|
||||
}
|
||||
|
||||
public function getLocality()
|
||||
{
|
||||
return $this->locality;
|
||||
}
|
||||
|
||||
public function getState()
|
||||
{
|
||||
return $this->state;
|
||||
}
|
||||
|
||||
public function getCountry()
|
||||
{
|
||||
return $this->country;
|
||||
}
|
||||
|
||||
public function getOrganizationalUnit()
|
||||
{
|
||||
return $this->organizationalUnit;
|
||||
}
|
||||
|
||||
public static function fromBinary(&$binaryData, &$offsetIndex = 0)
|
||||
{
|
||||
self::parseIdentifier($binaryData[$offsetIndex], Identifier::SEQUENCE, $offsetIndex++);
|
||||
$contentLength = self::parseContentLength($binaryData, $offsetIndex);
|
||||
|
||||
$names = [];
|
||||
$octetsToRead = $contentLength;
|
||||
while ($octetsToRead > 0) {
|
||||
$relativeDistinguishedName = RelativeDistinguishedName::fromBinary($binaryData, $offsetIndex);
|
||||
$octetsToRead -= $relativeDistinguishedName->getObjectLength();
|
||||
$names[] = $relativeDistinguishedName;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user