GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Test Failed
Pull Request — master (#1)
by thomas
05:34
created
lib/X509/AttributeCertificate/Attributes.php 1 patch
Indentation   +196 added lines, -196 removed lines patch added patch discarded remove patch
@@ -26,200 +26,200 @@
 block discarded – undo
26 26
  */
27 27
 class Attributes implements \Countable, \IteratorAggregate
28 28
 {
29
-    use AttributeContainer;
30
-    
31
-    /**
32
-     * Mapping from OID to attribute value class name.
33
-     *
34
-     * @internal
35
-     *
36
-     * @var array
37
-     */
38
-    const MAP_OID_TO_CLASS = array(
39
-        /* @formatter:off */
40
-        AccessIdentityAttributeValue::OID => AccessIdentityAttributeValue::class,
41
-        AuthenticationInfoAttributeValue::OID => AuthenticationInfoAttributeValue::class,
42
-        ChargingIdentityAttributeValue::OID => ChargingIdentityAttributeValue::class,
43
-        GroupAttributeValue::OID => GroupAttributeValue::class,
44
-        AttributeType::OID_ROLE => RoleAttributeValue::class
45
-        /* @formatter:on */
46
-    );
47
-    
48
-    /**
49
-     * Constructor.
50
-     *
51
-     * @param Attribute[] $attribs
52
-     */
53
-    public function __construct(Attribute ...$attribs)
54
-    {
55
-        $this->_attributes = $attribs;
56
-    }
57
-    
58
-    /**
59
-     * Initialize from attribute values.
60
-     *
61
-     * @param AttributeValue[] $values
62
-     * @return self
63
-     */
64
-    public static function fromAttributeValues(AttributeValue ...$values)
65
-    {
66
-        $attribs = array_map(
67
-            function (AttributeValue $value) {
68
-                return $value->toAttribute();
69
-            }, $values);
70
-        return new self(...$attribs);
71
-    }
72
-    
73
-    /**
74
-     * Initialize from ASN.1.
75
-     *
76
-     * @param Sequence $seq
77
-     * @return self
78
-     */
79
-    public static function fromASN1(Sequence $seq)
80
-    {
81
-        $attribs = array_map(
82
-            function (UnspecifiedType $el) {
83
-                return Attribute::fromASN1($el->asSequence());
84
-            }, $seq->elements());
85
-        // cast attributes
86
-        $attribs = array_map(
87
-            function (Attribute $attr) {
88
-                $oid = $attr->oid();
89
-                if (array_key_exists($oid, self::MAP_OID_TO_CLASS)) {
90
-                    $cls = self::MAP_OID_TO_CLASS[$oid];
91
-                    $attr = $attr->castValues($cls);
92
-                }
93
-                return $attr;
94
-            }, $attribs);
95
-        return new self(...$attribs);
96
-    }
97
-    
98
-    /**
99
-     * Check whether 'Access Identity' attribute is present.
100
-     *
101
-     * @return bool
102
-     */
103
-    public function hasAccessIdentity(): bool
104
-    {
105
-        return $this->has(AccessIdentityAttributeValue::OID);
106
-    }
107
-    
108
-    /**
109
-     * Get the first 'Access Identity' attribute value.
110
-     *
111
-     * @return AccessIdentityAttributeValue
112
-     */
113
-    public function accessIdentity(): AccessIdentityAttributeValue
114
-    {
115
-        return $this->firstOf(AccessIdentityAttributeValue::OID)->first();
116
-    }
117
-    
118
-    /**
119
-     * Check whether 'Service Authentication Information' attribute is present.
120
-     *
121
-     * @return bool
122
-     */
123
-    public function hasAuthenticationInformation(): bool
124
-    {
125
-        return $this->has(AuthenticationInfoAttributeValue::OID);
126
-    }
127
-    
128
-    /**
129
-     * Get the first 'Service Authentication Information' attribute value.
130
-     *
131
-     * @return AuthenticationInfoAttributeValue
132
-     */
133
-    public function authenticationInformation(): AuthenticationInfoAttributeValue
134
-    {
135
-        return $this->firstOf(AuthenticationInfoAttributeValue::OID)->first();
136
-    }
137
-    
138
-    /**
139
-     * Check whether 'Charging Identity' attribute is present.
140
-     *
141
-     * @return bool
142
-     */
143
-    public function hasChargingIdentity(): bool
144
-    {
145
-        return $this->has(ChargingIdentityAttributeValue::OID);
146
-    }
147
-    
148
-    /**
149
-     * Get the first 'Charging Identity' attribute value.
150
-     *
151
-     * @return ChargingIdentityAttributeValue
152
-     */
153
-    public function chargingIdentity(): ChargingIdentityAttributeValue
154
-    {
155
-        return $this->firstOf(ChargingIdentityAttributeValue::OID)->first();
156
-    }
157
-    
158
-    /**
159
-     * Check whether 'Group' attribute is present.
160
-     *
161
-     * @return bool
162
-     */
163
-    public function hasGroup(): bool
164
-    {
165
-        return $this->has(GroupAttributeValue::OID);
166
-    }
167
-    
168
-    /**
169
-     * Get the first 'Group' attribute value.
170
-     *
171
-     * @return GroupAttributeValue
172
-     */
173
-    public function group(): GroupAttributeValue
174
-    {
175
-        return $this->firstOf(GroupAttributeValue::OID)->first();
176
-    }
177
-    
178
-    /**
179
-     * Check whether 'Role' attribute is present.
180
-     *
181
-     * @return bool
182
-     */
183
-    public function hasRole(): bool
184
-    {
185
-        return $this->has(AttributeType::OID_ROLE);
186
-    }
187
-    
188
-    /**
189
-     * Get the first 'Role' attribute value.
190
-     *
191
-     * @return RoleAttributeValue
192
-     */
193
-    public function role(): RoleAttributeValue
194
-    {
195
-        return $this->firstOf(AttributeType::OID_ROLE)->first();
196
-    }
197
-    
198
-    /**
199
-     * Get all 'Role' attribute values.
200
-     *
201
-     * @return RoleAttributeValue[]
202
-     */
203
-    public function roles(): array
204
-    {
205
-        return array_merge(array(),
206
-            ...array_map(
207
-                function (Attribute $attr) {
208
-                    return $attr->values();
209
-                }, $this->allOf(AttributeType::OID_ROLE)));
210
-    }
211
-    
212
-    /**
213
-     * Generate ASN.1 structure.
214
-     *
215
-     * @return Sequence
216
-     */
217
-    public function toASN1(): Sequence
218
-    {
219
-        $elements = array_map(
220
-            function (Attribute $attr) {
221
-                return $attr->toASN1();
222
-            }, array_values($this->_attributes));
223
-        return new Sequence(...$elements);
224
-    }
29
+	use AttributeContainer;
30
+    
31
+	/**
32
+	 * Mapping from OID to attribute value class name.
33
+	 *
34
+	 * @internal
35
+	 *
36
+	 * @var array
37
+	 */
38
+	const MAP_OID_TO_CLASS = array(
39
+		/* @formatter:off */
40
+		AccessIdentityAttributeValue::OID => AccessIdentityAttributeValue::class,
41
+		AuthenticationInfoAttributeValue::OID => AuthenticationInfoAttributeValue::class,
42
+		ChargingIdentityAttributeValue::OID => ChargingIdentityAttributeValue::class,
43
+		GroupAttributeValue::OID => GroupAttributeValue::class,
44
+		AttributeType::OID_ROLE => RoleAttributeValue::class
45
+		/* @formatter:on */
46
+	);
47
+    
48
+	/**
49
+	 * Constructor.
50
+	 *
51
+	 * @param Attribute[] $attribs
52
+	 */
53
+	public function __construct(Attribute ...$attribs)
54
+	{
55
+		$this->_attributes = $attribs;
56
+	}
57
+    
58
+	/**
59
+	 * Initialize from attribute values.
60
+	 *
61
+	 * @param AttributeValue[] $values
62
+	 * @return self
63
+	 */
64
+	public static function fromAttributeValues(AttributeValue ...$values)
65
+	{
66
+		$attribs = array_map(
67
+			function (AttributeValue $value) {
68
+				return $value->toAttribute();
69
+			}, $values);
70
+		return new self(...$attribs);
71
+	}
72
+    
73
+	/**
74
+	 * Initialize from ASN.1.
75
+	 *
76
+	 * @param Sequence $seq
77
+	 * @return self
78
+	 */
79
+	public static function fromASN1(Sequence $seq)
80
+	{
81
+		$attribs = array_map(
82
+			function (UnspecifiedType $el) {
83
+				return Attribute::fromASN1($el->asSequence());
84
+			}, $seq->elements());
85
+		// cast attributes
86
+		$attribs = array_map(
87
+			function (Attribute $attr) {
88
+				$oid = $attr->oid();
89
+				if (array_key_exists($oid, self::MAP_OID_TO_CLASS)) {
90
+					$cls = self::MAP_OID_TO_CLASS[$oid];
91
+					$attr = $attr->castValues($cls);
92
+				}
93
+				return $attr;
94
+			}, $attribs);
95
+		return new self(...$attribs);
96
+	}
97
+    
98
+	/**
99
+	 * Check whether 'Access Identity' attribute is present.
100
+	 *
101
+	 * @return bool
102
+	 */
103
+	public function hasAccessIdentity(): bool
104
+	{
105
+		return $this->has(AccessIdentityAttributeValue::OID);
106
+	}
107
+    
108
+	/**
109
+	 * Get the first 'Access Identity' attribute value.
110
+	 *
111
+	 * @return AccessIdentityAttributeValue
112
+	 */
113
+	public function accessIdentity(): AccessIdentityAttributeValue
114
+	{
115
+		return $this->firstOf(AccessIdentityAttributeValue::OID)->first();
116
+	}
117
+    
118
+	/**
119
+	 * Check whether 'Service Authentication Information' attribute is present.
120
+	 *
121
+	 * @return bool
122
+	 */
123
+	public function hasAuthenticationInformation(): bool
124
+	{
125
+		return $this->has(AuthenticationInfoAttributeValue::OID);
126
+	}
127
+    
128
+	/**
129
+	 * Get the first 'Service Authentication Information' attribute value.
130
+	 *
131
+	 * @return AuthenticationInfoAttributeValue
132
+	 */
133
+	public function authenticationInformation(): AuthenticationInfoAttributeValue
134
+	{
135
+		return $this->firstOf(AuthenticationInfoAttributeValue::OID)->first();
136
+	}
137
+    
138
+	/**
139
+	 * Check whether 'Charging Identity' attribute is present.
140
+	 *
141
+	 * @return bool
142
+	 */
143
+	public function hasChargingIdentity(): bool
144
+	{
145
+		return $this->has(ChargingIdentityAttributeValue::OID);
146
+	}
147
+    
148
+	/**
149
+	 * Get the first 'Charging Identity' attribute value.
150
+	 *
151
+	 * @return ChargingIdentityAttributeValue
152
+	 */
153
+	public function chargingIdentity(): ChargingIdentityAttributeValue
154
+	{
155
+		return $this->firstOf(ChargingIdentityAttributeValue::OID)->first();
156
+	}
157
+    
158
+	/**
159
+	 * Check whether 'Group' attribute is present.
160
+	 *
161
+	 * @return bool
162
+	 */
163
+	public function hasGroup(): bool
164
+	{
165
+		return $this->has(GroupAttributeValue::OID);
166
+	}
167
+    
168
+	/**
169
+	 * Get the first 'Group' attribute value.
170
+	 *
171
+	 * @return GroupAttributeValue
172
+	 */
173
+	public function group(): GroupAttributeValue
174
+	{
175
+		return $this->firstOf(GroupAttributeValue::OID)->first();
176
+	}
177
+    
178
+	/**
179
+	 * Check whether 'Role' attribute is present.
180
+	 *
181
+	 * @return bool
182
+	 */
183
+	public function hasRole(): bool
184
+	{
185
+		return $this->has(AttributeType::OID_ROLE);
186
+	}
187
+    
188
+	/**
189
+	 * Get the first 'Role' attribute value.
190
+	 *
191
+	 * @return RoleAttributeValue
192
+	 */
193
+	public function role(): RoleAttributeValue
194
+	{
195
+		return $this->firstOf(AttributeType::OID_ROLE)->first();
196
+	}
197
+    
198
+	/**
199
+	 * Get all 'Role' attribute values.
200
+	 *
201
+	 * @return RoleAttributeValue[]
202
+	 */
203
+	public function roles(): array
204
+	{
205
+		return array_merge(array(),
206
+			...array_map(
207
+				function (Attribute $attr) {
208
+					return $attr->values();
209
+				}, $this->allOf(AttributeType::OID_ROLE)));
210
+	}
211
+    
212
+	/**
213
+	 * Generate ASN.1 structure.
214
+	 *
215
+	 * @return Sequence
216
+	 */
217
+	public function toASN1(): Sequence
218
+	{
219
+		$elements = array_map(
220
+			function (Attribute $attr) {
221
+				return $attr->toASN1();
222
+			}, array_values($this->_attributes));
223
+		return new Sequence(...$elements);
224
+	}
225 225
 }
Please login to merge, or discard this patch.
lib/X509/AttributeCertificate/ObjectDigestInfo.php 1 patch
Indentation   +81 added lines, -81 removed lines patch added patch discarded remove patch
@@ -20,92 +20,92 @@
 block discarded – undo
20 20
  */
21 21
 class ObjectDigestInfo
22 22
 {
23
-    const TYPE_PUBLIC_KEY = 0;
24
-    const TYPE_PUBLIC_KEY_CERT = 1;
25
-    const TYPE_OTHER_OBJECT_TYPES = 2;
23
+	const TYPE_PUBLIC_KEY = 0;
24
+	const TYPE_PUBLIC_KEY_CERT = 1;
25
+	const TYPE_OTHER_OBJECT_TYPES = 2;
26 26
     
27
-    /**
28
-     * Object type.
29
-     *
30
-     * @var int $_digestedObjectType
31
-     */
32
-    protected $_digestedObjectType;
27
+	/**
28
+	 * Object type.
29
+	 *
30
+	 * @var int $_digestedObjectType
31
+	 */
32
+	protected $_digestedObjectType;
33 33
     
34
-    /**
35
-     * OID of other object type.
36
-     *
37
-     * @var string|null $_otherObjectTypeID
38
-     */
39
-    protected $_otherObjectTypeID;
34
+	/**
35
+	 * OID of other object type.
36
+	 *
37
+	 * @var string|null $_otherObjectTypeID
38
+	 */
39
+	protected $_otherObjectTypeID;
40 40
     
41
-    /**
42
-     * Digest algorithm.
43
-     *
44
-     * @var AlgorithmIdentifierType $_digestAlgorithm
45
-     */
46
-    protected $_digestAlgorithm;
41
+	/**
42
+	 * Digest algorithm.
43
+	 *
44
+	 * @var AlgorithmIdentifierType $_digestAlgorithm
45
+	 */
46
+	protected $_digestAlgorithm;
47 47
     
48
-    /**
49
-     * Object digest.
50
-     *
51
-     * @var BitString $_objectDigest
52
-     */
53
-    protected $_objectDigest;
48
+	/**
49
+	 * Object digest.
50
+	 *
51
+	 * @var BitString $_objectDigest
52
+	 */
53
+	protected $_objectDigest;
54 54
     
55
-    /**
56
-     * Constructor.
57
-     *
58
-     * @param int $type
59
-     * @param AlgorithmIdentifierType $algo
60
-     * @param BitString $digest
61
-     */
62
-    public function __construct($type, AlgorithmIdentifierType $algo,
63
-        BitString $digest)
64
-    {
65
-        $this->_digestedObjectType = $type;
66
-        $this->_otherObjectTypeID = null;
67
-        $this->_digestAlgorithm = $algo;
68
-        $this->_objectDigest = $digest;
69
-    }
55
+	/**
56
+	 * Constructor.
57
+	 *
58
+	 * @param int $type
59
+	 * @param AlgorithmIdentifierType $algo
60
+	 * @param BitString $digest
61
+	 */
62
+	public function __construct($type, AlgorithmIdentifierType $algo,
63
+		BitString $digest)
64
+	{
65
+		$this->_digestedObjectType = $type;
66
+		$this->_otherObjectTypeID = null;
67
+		$this->_digestAlgorithm = $algo;
68
+		$this->_objectDigest = $digest;
69
+	}
70 70
     
71
-    /**
72
-     * Initialize from ASN.1.
73
-     *
74
-     * @param Sequence $seq
75
-     * @return self
76
-     */
77
-    public static function fromASN1(Sequence $seq)
78
-    {
79
-        $type = $seq->at(0)
80
-            ->asEnumerated()
81
-            ->number();
82
-        $oid = null;
83
-        $idx = 1;
84
-        if ($seq->has($idx, Element::TYPE_OBJECT_IDENTIFIER)) {
85
-            $oid = $seq->at($idx++)
86
-                ->asObjectIdentifier()
87
-                ->oid();
88
-        }
89
-        $algo = AlgorithmIdentifier::fromASN1($seq->at($idx++)->asSequence());
90
-        $digest = $seq->at($idx)->asBitString();
91
-        $obj = new self($type, $algo, $digest);
92
-        $obj->_otherObjectTypeID = $oid;
93
-        return $obj;
94
-    }
71
+	/**
72
+	 * Initialize from ASN.1.
73
+	 *
74
+	 * @param Sequence $seq
75
+	 * @return self
76
+	 */
77
+	public static function fromASN1(Sequence $seq)
78
+	{
79
+		$type = $seq->at(0)
80
+			->asEnumerated()
81
+			->number();
82
+		$oid = null;
83
+		$idx = 1;
84
+		if ($seq->has($idx, Element::TYPE_OBJECT_IDENTIFIER)) {
85
+			$oid = $seq->at($idx++)
86
+				->asObjectIdentifier()
87
+				->oid();
88
+		}
89
+		$algo = AlgorithmIdentifier::fromASN1($seq->at($idx++)->asSequence());
90
+		$digest = $seq->at($idx)->asBitString();
91
+		$obj = new self($type, $algo, $digest);
92
+		$obj->_otherObjectTypeID = $oid;
93
+		return $obj;
94
+	}
95 95
     
96
-    /**
97
-     * Generate ASN.1 structure.
98
-     *
99
-     * @return Sequence
100
-     */
101
-    public function toASN1(): Sequence
102
-    {
103
-        $elements = array(new Enumerated($this->_digestedObjectType));
104
-        if (isset($this->_otherObjectTypeID)) {
105
-            $elements[] = new ObjectIdentifier($this->_otherObjectTypeID);
106
-        }
107
-        $elements[] = $this->_digestAlgorithm->toASN1();
108
-        $elements[] = $this->_objectDigest;
109
-        return new Sequence(...$elements);
110
-    }
96
+	/**
97
+	 * Generate ASN.1 structure.
98
+	 *
99
+	 * @return Sequence
100
+	 */
101
+	public function toASN1(): Sequence
102
+	{
103
+		$elements = array(new Enumerated($this->_digestedObjectType));
104
+		if (isset($this->_otherObjectTypeID)) {
105
+			$elements[] = new ObjectIdentifier($this->_otherObjectTypeID);
106
+		}
107
+		$elements[] = $this->_digestAlgorithm->toASN1();
108
+		$elements[] = $this->_objectDigest;
109
+		return new Sequence(...$elements);
110
+	}
111 111
 }
Please login to merge, or discard this patch.
lib/X509/AttributeCertificate/Validation/ACValidator.php 1 patch
Indentation   +164 added lines, -164 removed lines patch added patch discarded remove patch
@@ -21,178 +21,178 @@
 block discarded – undo
21 21
  */
22 22
 class ACValidator
23 23
 {
24
-    /**
25
-     * Attribute certificate.
26
-     *
27
-     * @var AttributeCertificate
28
-     */
29
-    protected $_ac;
24
+	/**
25
+	 * Attribute certificate.
26
+	 *
27
+	 * @var AttributeCertificate
28
+	 */
29
+	protected $_ac;
30 30
     
31
-    /**
32
-     * Validation configuration.
33
-     *
34
-     * @var ACValidationConfig
35
-     */
36
-    protected $_config;
31
+	/**
32
+	 * Validation configuration.
33
+	 *
34
+	 * @var ACValidationConfig
35
+	 */
36
+	protected $_config;
37 37
     
38
-    /**
39
-     * Crypto engine.
40
-     *
41
-     * @var Crypto
42
-     */
43
-    protected $_crypto;
38
+	/**
39
+	 * Crypto engine.
40
+	 *
41
+	 * @var Crypto
42
+	 */
43
+	protected $_crypto;
44 44
     
45
-    /**
46
-     * Constructor.
47
-     *
48
-     * @param AttributeCertificate $ac Attribute certificate to validate
49
-     * @param ACValidationConfig $config Validation configuration
50
-     * @param Crypto|null $crypto Crypto engine, use default if not set
51
-     */
52
-    public function __construct(AttributeCertificate $ac,
53
-        ACValidationConfig $config, Crypto $crypto = null)
54
-    {
55
-        $this->_ac = $ac;
56
-        $this->_config = $config;
57
-        $this->_crypto = $crypto ?: Crypto::getDefault();
58
-    }
45
+	/**
46
+	 * Constructor.
47
+	 *
48
+	 * @param AttributeCertificate $ac Attribute certificate to validate
49
+	 * @param ACValidationConfig $config Validation configuration
50
+	 * @param Crypto|null $crypto Crypto engine, use default if not set
51
+	 */
52
+	public function __construct(AttributeCertificate $ac,
53
+		ACValidationConfig $config, Crypto $crypto = null)
54
+	{
55
+		$this->_ac = $ac;
56
+		$this->_config = $config;
57
+		$this->_crypto = $crypto ?: Crypto::getDefault();
58
+	}
59 59
     
60
-    /**
61
-     * Validate attribute certificate.
62
-     *
63
-     * @throws ACValidationException If validation fails
64
-     * @return AttributeCertificate Validated AC
65
-     */
66
-    public function validate()
67
-    {
68
-        $this->_validateHolder();
69
-        $issuer = $this->_verifyIssuer();
70
-        $this->_validateIssuerProfile($issuer);
71
-        $this->_validateTime();
72
-        $this->_validateTargeting();
73
-        return $this->_ac;
74
-    }
60
+	/**
61
+	 * Validate attribute certificate.
62
+	 *
63
+	 * @throws ACValidationException If validation fails
64
+	 * @return AttributeCertificate Validated AC
65
+	 */
66
+	public function validate()
67
+	{
68
+		$this->_validateHolder();
69
+		$issuer = $this->_verifyIssuer();
70
+		$this->_validateIssuerProfile($issuer);
71
+		$this->_validateTime();
72
+		$this->_validateTargeting();
73
+		return $this->_ac;
74
+	}
75 75
     
76
-    /**
77
-     * Validate AC holder's certification.
78
-     *
79
-     * @throws ACValidationException
80
-     * @return Certificate Certificate of the AC's holder
81
-     */
82
-    private function _validateHolder()
83
-    {
84
-        $path = $this->_config->holderPath();
85
-        $config = PathValidationConfig::defaultConfig()->withMaxLength(
86
-            count($path))->withDateTime($this->_config->evaluationTime());
87
-        try {
88
-            $holder = $path->validate($config, $this->_crypto)->certificate();
89
-        } catch (PathValidationException $e) {
90
-            throw new ACValidationException(
91
-                "Failed to validate holder PKC's certification path.", 0, $e);
92
-        }
93
-        if (!$this->_ac->isHeldBy($holder)) {
94
-            throw new ACValidationException("Name mismatch of AC's holder PKC.");
95
-        }
96
-        return $holder;
97
-    }
76
+	/**
77
+	 * Validate AC holder's certification.
78
+	 *
79
+	 * @throws ACValidationException
80
+	 * @return Certificate Certificate of the AC's holder
81
+	 */
82
+	private function _validateHolder()
83
+	{
84
+		$path = $this->_config->holderPath();
85
+		$config = PathValidationConfig::defaultConfig()->withMaxLength(
86
+			count($path))->withDateTime($this->_config->evaluationTime());
87
+		try {
88
+			$holder = $path->validate($config, $this->_crypto)->certificate();
89
+		} catch (PathValidationException $e) {
90
+			throw new ACValidationException(
91
+				"Failed to validate holder PKC's certification path.", 0, $e);
92
+		}
93
+		if (!$this->_ac->isHeldBy($holder)) {
94
+			throw new ACValidationException("Name mismatch of AC's holder PKC.");
95
+		}
96
+		return $holder;
97
+	}
98 98
     
99
-    /**
100
-     * Verify AC's signature and issuer's certification.
101
-     *
102
-     * @throws ACValidationException
103
-     * @return Certificate Certificate of the AC's issuer
104
-     */
105
-    private function _verifyIssuer()
106
-    {
107
-        $path = $this->_config->issuerPath();
108
-        $config = PathValidationConfig::defaultConfig()->withMaxLength(
109
-            count($path))->withDateTime($this->_config->evaluationTime());
110
-        try {
111
-            $issuer = $path->validate($config, $this->_crypto)->certificate();
112
-        } catch (PathValidationException $e) {
113
-            throw new ACValidationException(
114
-                "Failed to validate issuer PKC's certification path.", 0, $e);
115
-        }
116
-        if (!$this->_ac->isIssuedBy($issuer)) {
117
-            throw new ACValidationException("Name mismatch of AC's issuer PKC.");
118
-        }
119
-        $pubkey_info = $issuer->tbsCertificate()->subjectPublicKeyInfo();
120
-        if (!$this->_ac->verify($pubkey_info, $this->_crypto)) {
121
-            throw new ACValidationException("Failed to verify signature.");
122
-        }
123
-        return $issuer;
124
-    }
99
+	/**
100
+	 * Verify AC's signature and issuer's certification.
101
+	 *
102
+	 * @throws ACValidationException
103
+	 * @return Certificate Certificate of the AC's issuer
104
+	 */
105
+	private function _verifyIssuer()
106
+	{
107
+		$path = $this->_config->issuerPath();
108
+		$config = PathValidationConfig::defaultConfig()->withMaxLength(
109
+			count($path))->withDateTime($this->_config->evaluationTime());
110
+		try {
111
+			$issuer = $path->validate($config, $this->_crypto)->certificate();
112
+		} catch (PathValidationException $e) {
113
+			throw new ACValidationException(
114
+				"Failed to validate issuer PKC's certification path.", 0, $e);
115
+		}
116
+		if (!$this->_ac->isIssuedBy($issuer)) {
117
+			throw new ACValidationException("Name mismatch of AC's issuer PKC.");
118
+		}
119
+		$pubkey_info = $issuer->tbsCertificate()->subjectPublicKeyInfo();
120
+		if (!$this->_ac->verify($pubkey_info, $this->_crypto)) {
121
+			throw new ACValidationException("Failed to verify signature.");
122
+		}
123
+		return $issuer;
124
+	}
125 125
     
126
-    /**
127
-     * Validate AC issuer's profile.
128
-     *
129
-     * @link https://tools.ietf.org/html/rfc5755#section-4.5
130
-     * @param Certificate $cert
131
-     * @throws ACValidationException
132
-     */
133
-    private function _validateIssuerProfile(Certificate $cert)
134
-    {
135
-        $exts = $cert->tbsCertificate()->extensions();
136
-        if ($exts->hasKeyUsage() && !$exts->keyUsage()->isDigitalSignature()) {
137
-            throw new ACValidationException(
138
-                "Issuer PKC's Key Usage extension doesn't permit" .
139
-                     " verification of digital signatures.");
140
-        }
141
-        if ($exts->hasBasicConstraints() && $exts->basicConstraints()->isCA()) {
142
-            throw new ACValidationException("Issuer PKC must not be a CA.");
143
-        }
144
-    }
126
+	/**
127
+	 * Validate AC issuer's profile.
128
+	 *
129
+	 * @link https://tools.ietf.org/html/rfc5755#section-4.5
130
+	 * @param Certificate $cert
131
+	 * @throws ACValidationException
132
+	 */
133
+	private function _validateIssuerProfile(Certificate $cert)
134
+	{
135
+		$exts = $cert->tbsCertificate()->extensions();
136
+		if ($exts->hasKeyUsage() && !$exts->keyUsage()->isDigitalSignature()) {
137
+			throw new ACValidationException(
138
+				"Issuer PKC's Key Usage extension doesn't permit" .
139
+					 " verification of digital signatures.");
140
+		}
141
+		if ($exts->hasBasicConstraints() && $exts->basicConstraints()->isCA()) {
142
+			throw new ACValidationException("Issuer PKC must not be a CA.");
143
+		}
144
+	}
145 145
     
146
-    /**
147
-     * Validate AC's validity period.
148
-     *
149
-     * @throws ACValidationException
150
-     */
151
-    private function _validateTime()
152
-    {
153
-        $t = $this->_config->evaluationTime();
154
-        $validity = $this->_ac->acinfo()->validityPeriod();
155
-        if ($validity->notBeforeTime()->diff($t)->invert) {
156
-            throw new ACValidationException("Validity period has not started.");
157
-        }
158
-        if ($t->diff($validity->notAfterTime())->invert) {
159
-            throw new ACValidationException("Attribute certificate has expired.");
160
-        }
161
-    }
146
+	/**
147
+	 * Validate AC's validity period.
148
+	 *
149
+	 * @throws ACValidationException
150
+	 */
151
+	private function _validateTime()
152
+	{
153
+		$t = $this->_config->evaluationTime();
154
+		$validity = $this->_ac->acinfo()->validityPeriod();
155
+		if ($validity->notBeforeTime()->diff($t)->invert) {
156
+			throw new ACValidationException("Validity period has not started.");
157
+		}
158
+		if ($t->diff($validity->notAfterTime())->invert) {
159
+			throw new ACValidationException("Attribute certificate has expired.");
160
+		}
161
+	}
162 162
     
163
-    /**
164
-     * Validate AC's target information.
165
-     *
166
-     * @throws ACValidationException
167
-     */
168
-    private function _validateTargeting()
169
-    {
170
-        $exts = $this->_ac->acinfo()->extensions();
171
-        // if target information extension is not present
172
-        if (!$exts->has(Extension::OID_TARGET_INFORMATION)) {
173
-            return;
174
-        }
175
-        $ext = $exts->get(Extension::OID_TARGET_INFORMATION);
176
-        if ($ext instanceof TargetInformationExtension &&
177
-             !$this->_hasMatchingTarget($ext->targets())) {
178
-            throw new ACValidationException(
179
-                "Attribute certificate doesn't have a matching target.");
180
-        }
181
-    }
163
+	/**
164
+	 * Validate AC's target information.
165
+	 *
166
+	 * @throws ACValidationException
167
+	 */
168
+	private function _validateTargeting()
169
+	{
170
+		$exts = $this->_ac->acinfo()->extensions();
171
+		// if target information extension is not present
172
+		if (!$exts->has(Extension::OID_TARGET_INFORMATION)) {
173
+			return;
174
+		}
175
+		$ext = $exts->get(Extension::OID_TARGET_INFORMATION);
176
+		if ($ext instanceof TargetInformationExtension &&
177
+			 !$this->_hasMatchingTarget($ext->targets())) {
178
+			throw new ACValidationException(
179
+				"Attribute certificate doesn't have a matching target.");
180
+		}
181
+	}
182 182
     
183
-    /**
184
-     * Check whether validation configuration has matching targets.
185
-     *
186
-     * @param Targets $targets Set of eligible targets
187
-     * @return boolean
188
-     */
189
-    private function _hasMatchingTarget(Targets $targets)
190
-    {
191
-        foreach ($this->_config->targets() as $target) {
192
-            if ($targets->hasTarget($target)) {
193
-                return true;
194
-            }
195
-        }
196
-        return false;
197
-    }
183
+	/**
184
+	 * Check whether validation configuration has matching targets.
185
+	 *
186
+	 * @param Targets $targets Set of eligible targets
187
+	 * @return boolean
188
+	 */
189
+	private function _hasMatchingTarget(Targets $targets)
190
+	{
191
+		foreach ($this->_config->targets() as $target) {
192
+			if ($targets->hasTarget($target)) {
193
+				return true;
194
+			}
195
+		}
196
+		return false;
197
+	}
198 198
 }
Please login to merge, or discard this patch.
lib/X509/AttributeCertificate/Holder.php 1 patch
Indentation   +259 added lines, -259 removed lines patch added patch discarded remove patch
@@ -19,281 +19,281 @@
 block discarded – undo
19 19
  */
20 20
 class Holder
21 21
 {
22
-    /**
23
-     * Holder PKC's issuer and serial.
24
-     *
25
-     * @var IssuerSerial|null $_baseCertificateID
26
-     */
27
-    protected $_baseCertificateID;
22
+	/**
23
+	 * Holder PKC's issuer and serial.
24
+	 *
25
+	 * @var IssuerSerial|null $_baseCertificateID
26
+	 */
27
+	protected $_baseCertificateID;
28 28
     
29
-    /**
30
-     * Holder PKC's subject.
31
-     *
32
-     * @var GeneralNames|null $_entityName
33
-     */
34
-    protected $_entityName;
29
+	/**
30
+	 * Holder PKC's subject.
31
+	 *
32
+	 * @var GeneralNames|null $_entityName
33
+	 */
34
+	protected $_entityName;
35 35
     
36
-    /**
37
-     * Linked object.
38
-     *
39
-     * @var ObjectDigestInfo|null $_objectDigestInfo
40
-     */
41
-    protected $_objectDigestInfo;
36
+	/**
37
+	 * Linked object.
38
+	 *
39
+	 * @var ObjectDigestInfo|null $_objectDigestInfo
40
+	 */
41
+	protected $_objectDigestInfo;
42 42
     
43
-    /**
44
-     * Constructor.
45
-     *
46
-     * @param IssuerSerial|null $issuer_serial
47
-     * @param GeneralNames|null $entity_name
48
-     */
49
-    public function __construct(IssuerSerial $issuer_serial = null,
50
-        GeneralNames $entity_name = null)
51
-    {
52
-        $this->_baseCertificateID = $issuer_serial;
53
-        $this->_entityName = $entity_name;
54
-    }
43
+	/**
44
+	 * Constructor.
45
+	 *
46
+	 * @param IssuerSerial|null $issuer_serial
47
+	 * @param GeneralNames|null $entity_name
48
+	 */
49
+	public function __construct(IssuerSerial $issuer_serial = null,
50
+		GeneralNames $entity_name = null)
51
+	{
52
+		$this->_baseCertificateID = $issuer_serial;
53
+		$this->_entityName = $entity_name;
54
+	}
55 55
     
56
-    /**
57
-     * Initialize from a holder's public key certificate.
58
-     *
59
-     * @param Certificate $cert
60
-     * @return self
61
-     */
62
-    public static function fromPKC(Certificate $cert)
63
-    {
64
-        return new self(IssuerSerial::fromPKC($cert));
65
-    }
56
+	/**
57
+	 * Initialize from a holder's public key certificate.
58
+	 *
59
+	 * @param Certificate $cert
60
+	 * @return self
61
+	 */
62
+	public static function fromPKC(Certificate $cert)
63
+	{
64
+		return new self(IssuerSerial::fromPKC($cert));
65
+	}
66 66
     
67
-    /**
68
-     * Initialize from ASN.1.
69
-     *
70
-     * @param Sequence $seq
71
-     */
72
-    public static function fromASN1(Sequence $seq)
73
-    {
74
-        $cert_id = null;
75
-        $entity_name = null;
76
-        $digest_info = null;
77
-        if ($seq->hasTagged(0)) {
78
-            $cert_id = IssuerSerial::fromASN1(
79
-                $seq->getTagged(0)
80
-                    ->asImplicit(Element::TYPE_SEQUENCE)
81
-                    ->asSequence());
82
-        }
83
-        if ($seq->hasTagged(1)) {
84
-            $entity_name = GeneralNames::fromASN1(
85
-                $seq->getTagged(1)
86
-                    ->asImplicit(Element::TYPE_SEQUENCE)
87
-                    ->asSequence());
88
-        }
89
-        if ($seq->hasTagged(2)) {
90
-            $digest_info = ObjectDigestInfo::fromASN1(
91
-                $seq->getTagged(2)
92
-                    ->asImplicit(Element::TYPE_SEQUENCE)
93
-                    ->asSequence());
94
-        }
95
-        $obj = new self($cert_id, $entity_name);
96
-        $obj->_objectDigestInfo = $digest_info;
97
-        return $obj;
98
-    }
67
+	/**
68
+	 * Initialize from ASN.1.
69
+	 *
70
+	 * @param Sequence $seq
71
+	 */
72
+	public static function fromASN1(Sequence $seq)
73
+	{
74
+		$cert_id = null;
75
+		$entity_name = null;
76
+		$digest_info = null;
77
+		if ($seq->hasTagged(0)) {
78
+			$cert_id = IssuerSerial::fromASN1(
79
+				$seq->getTagged(0)
80
+					->asImplicit(Element::TYPE_SEQUENCE)
81
+					->asSequence());
82
+		}
83
+		if ($seq->hasTagged(1)) {
84
+			$entity_name = GeneralNames::fromASN1(
85
+				$seq->getTagged(1)
86
+					->asImplicit(Element::TYPE_SEQUENCE)
87
+					->asSequence());
88
+		}
89
+		if ($seq->hasTagged(2)) {
90
+			$digest_info = ObjectDigestInfo::fromASN1(
91
+				$seq->getTagged(2)
92
+					->asImplicit(Element::TYPE_SEQUENCE)
93
+					->asSequence());
94
+		}
95
+		$obj = new self($cert_id, $entity_name);
96
+		$obj->_objectDigestInfo = $digest_info;
97
+		return $obj;
98
+	}
99 99
     
100
-    /**
101
-     * Get self with base certificate ID.
102
-     *
103
-     * @param IssuerSerial $issuer
104
-     * @return self
105
-     */
106
-    public function withBaseCertificateID(IssuerSerial $issuer)
107
-    {
108
-        $obj = clone $this;
109
-        $obj->_baseCertificateID = $issuer;
110
-        return $obj;
111
-    }
100
+	/**
101
+	 * Get self with base certificate ID.
102
+	 *
103
+	 * @param IssuerSerial $issuer
104
+	 * @return self
105
+	 */
106
+	public function withBaseCertificateID(IssuerSerial $issuer)
107
+	{
108
+		$obj = clone $this;
109
+		$obj->_baseCertificateID = $issuer;
110
+		return $obj;
111
+	}
112 112
     
113
-    /**
114
-     * Get self with entity name.
115
-     *
116
-     * @param GeneralNames $names
117
-     * @return self
118
-     */
119
-    public function withEntityName(GeneralNames $names)
120
-    {
121
-        $obj = clone $this;
122
-        $obj->_entityName = $names;
123
-        return $obj;
124
-    }
113
+	/**
114
+	 * Get self with entity name.
115
+	 *
116
+	 * @param GeneralNames $names
117
+	 * @return self
118
+	 */
119
+	public function withEntityName(GeneralNames $names)
120
+	{
121
+		$obj = clone $this;
122
+		$obj->_entityName = $names;
123
+		return $obj;
124
+	}
125 125
     
126
-    /**
127
-     * Get self with object digest info.
128
-     *
129
-     * @param ObjectDigestInfo $odi
130
-     * @return self
131
-     */
132
-    public function withObjectDigestInfo(ObjectDigestInfo $odi)
133
-    {
134
-        $obj = clone $this;
135
-        $obj->_objectDigestInfo = $odi;
136
-        return $obj;
137
-    }
126
+	/**
127
+	 * Get self with object digest info.
128
+	 *
129
+	 * @param ObjectDigestInfo $odi
130
+	 * @return self
131
+	 */
132
+	public function withObjectDigestInfo(ObjectDigestInfo $odi)
133
+	{
134
+		$obj = clone $this;
135
+		$obj->_objectDigestInfo = $odi;
136
+		return $obj;
137
+	}
138 138
     
139
-    /**
140
-     * Check whether base certificate ID is present.
141
-     *
142
-     * @return bool
143
-     */
144
-    public function hasBaseCertificateID()
145
-    {
146
-        return isset($this->_baseCertificateID);
147
-    }
139
+	/**
140
+	 * Check whether base certificate ID is present.
141
+	 *
142
+	 * @return bool
143
+	 */
144
+	public function hasBaseCertificateID()
145
+	{
146
+		return isset($this->_baseCertificateID);
147
+	}
148 148
     
149
-    /**
150
-     * Get base certificate ID.
151
-     *
152
-     * @throws \LogicException
153
-     * @return IssuerSerial
154
-     */
155
-    public function baseCertificateID(): IssuerSerial
156
-    {
157
-        if (!$this->hasBaseCertificateID()) {
158
-            throw new \LogicException("baseCertificateID not set.");
159
-        }
160
-        return $this->_baseCertificateID;
161
-    }
149
+	/**
150
+	 * Get base certificate ID.
151
+	 *
152
+	 * @throws \LogicException
153
+	 * @return IssuerSerial
154
+	 */
155
+	public function baseCertificateID(): IssuerSerial
156
+	{
157
+		if (!$this->hasBaseCertificateID()) {
158
+			throw new \LogicException("baseCertificateID not set.");
159
+		}
160
+		return $this->_baseCertificateID;
161
+	}
162 162
     
163
-    /**
164
-     * Check whether entity name is present.
165
-     *
166
-     * @return bool
167
-     */
168
-    public function hasEntityName(): bool
169
-    {
170
-        return isset($this->_entityName);
171
-    }
163
+	/**
164
+	 * Check whether entity name is present.
165
+	 *
166
+	 * @return bool
167
+	 */
168
+	public function hasEntityName(): bool
169
+	{
170
+		return isset($this->_entityName);
171
+	}
172 172
     
173
-    /**
174
-     * Get entity name.
175
-     *
176
-     * @throws \LogicException
177
-     * @return GeneralNames
178
-     */
179
-    public function entityName(): GeneralNames
180
-    {
181
-        if (!$this->hasEntityName()) {
182
-            throw new \LogicException("entityName not set.");
183
-        }
184
-        return $this->_entityName;
185
-    }
173
+	/**
174
+	 * Get entity name.
175
+	 *
176
+	 * @throws \LogicException
177
+	 * @return GeneralNames
178
+	 */
179
+	public function entityName(): GeneralNames
180
+	{
181
+		if (!$this->hasEntityName()) {
182
+			throw new \LogicException("entityName not set.");
183
+		}
184
+		return $this->_entityName;
185
+	}
186 186
     
187
-    /**
188
-     * Check whether object digest info is present.
189
-     *
190
-     * @return bool
191
-     */
192
-    public function hasObjectDigestInfo(): bool
193
-    {
194
-        return isset($this->_objectDigestInfo);
195
-    }
187
+	/**
188
+	 * Check whether object digest info is present.
189
+	 *
190
+	 * @return bool
191
+	 */
192
+	public function hasObjectDigestInfo(): bool
193
+	{
194
+		return isset($this->_objectDigestInfo);
195
+	}
196 196
     
197
-    /**
198
-     * Get object digest info.
199
-     *
200
-     * @throws \LogicException
201
-     * @return ObjectDigestInfo
202
-     */
203
-    public function objectDigestInfo(): ObjectDigestInfo
204
-    {
205
-        if (!$this->hasObjectDigestInfo()) {
206
-            throw new \LogicException("objectDigestInfo not set.");
207
-        }
208
-        return $this->_objectDigestInfo;
209
-    }
197
+	/**
198
+	 * Get object digest info.
199
+	 *
200
+	 * @throws \LogicException
201
+	 * @return ObjectDigestInfo
202
+	 */
203
+	public function objectDigestInfo(): ObjectDigestInfo
204
+	{
205
+		if (!$this->hasObjectDigestInfo()) {
206
+			throw new \LogicException("objectDigestInfo not set.");
207
+		}
208
+		return $this->_objectDigestInfo;
209
+	}
210 210
     
211
-    /**
212
-     * Generate ASN.1 structure.
213
-     *
214
-     * @return Sequence
215
-     */
216
-    public function toASN1(): Sequence
217
-    {
218
-        $elements = [];
219
-        if (isset($this->_baseCertificateID)) {
220
-            $elements[] = new ImplicitlyTaggedType(0,
221
-                $this->_baseCertificateID->toASN1());
222
-        }
223
-        if (isset($this->_entityName)) {
224
-            $elements[] = new ImplicitlyTaggedType(1,
225
-                $this->_entityName->toASN1());
226
-        }
227
-        if (isset($this->_objectDigestInfo)) {
228
-            $elements[] = new ImplicitlyTaggedType(2,
229
-                $this->_objectDigestInfo->toASN1());
230
-        }
231
-        return new Sequence(...$elements);
232
-    }
211
+	/**
212
+	 * Generate ASN.1 structure.
213
+	 *
214
+	 * @return Sequence
215
+	 */
216
+	public function toASN1(): Sequence
217
+	{
218
+		$elements = [];
219
+		if (isset($this->_baseCertificateID)) {
220
+			$elements[] = new ImplicitlyTaggedType(0,
221
+				$this->_baseCertificateID->toASN1());
222
+		}
223
+		if (isset($this->_entityName)) {
224
+			$elements[] = new ImplicitlyTaggedType(1,
225
+				$this->_entityName->toASN1());
226
+		}
227
+		if (isset($this->_objectDigestInfo)) {
228
+			$elements[] = new ImplicitlyTaggedType(2,
229
+				$this->_objectDigestInfo->toASN1());
230
+		}
231
+		return new Sequence(...$elements);
232
+	}
233 233
     
234
-    /**
235
-     * Check whether Holder identifies given certificate.
236
-     *
237
-     * @param Certificate $cert
238
-     * @return boolean
239
-     */
240
-    public function identifiesPKC(Certificate $cert): bool
241
-    {
242
-        // if neither baseCertificateID nor entityName are present
243
-        if (!$this->_baseCertificateID && !$this->_entityName) {
244
-            return false;
245
-        }
246
-        // if baseCertificateID is present, but doesn't match
247
-        if ($this->_baseCertificateID &&
248
-             !$this->_baseCertificateID->identifiesPKC($cert)) {
249
-            return false;
250
-        }
251
-        // if entityName is present, but doesn't match
252
-        if ($this->_entityName && !$this->_checkEntityName($cert)) {
253
-            return false;
254
-        }
255
-        return true;
256
-    }
234
+	/**
235
+	 * Check whether Holder identifies given certificate.
236
+	 *
237
+	 * @param Certificate $cert
238
+	 * @return boolean
239
+	 */
240
+	public function identifiesPKC(Certificate $cert): bool
241
+	{
242
+		// if neither baseCertificateID nor entityName are present
243
+		if (!$this->_baseCertificateID && !$this->_entityName) {
244
+			return false;
245
+		}
246
+		// if baseCertificateID is present, but doesn't match
247
+		if ($this->_baseCertificateID &&
248
+			 !$this->_baseCertificateID->identifiesPKC($cert)) {
249
+			return false;
250
+		}
251
+		// if entityName is present, but doesn't match
252
+		if ($this->_entityName && !$this->_checkEntityName($cert)) {
253
+			return false;
254
+		}
255
+		return true;
256
+	}
257 257
     
258
-    /**
259
-     * Check whether entityName matches the given certificate.
260
-     *
261
-     * @param Certificate $cert
262
-     * @return boolean
263
-     */
264
-    private function _checkEntityName(Certificate $cert): bool
265
-    {
266
-        $name = $this->_entityName->firstDN();
267
-        if ($cert->tbsCertificate()
268
-            ->subject()
269
-            ->equals($name)) {
270
-            return true;
271
-        }
272
-        $exts = $cert->tbsCertificate()->extensions();
273
-        if ($exts->hasSubjectAlternativeName()) {
274
-            $ext = $exts->subjectAlternativeName();
275
-            if ($this->_checkEntityAlternativeNames($ext->names())) {
276
-                return true;
277
-            }
278
-        }
279
-        return false;
280
-    }
258
+	/**
259
+	 * Check whether entityName matches the given certificate.
260
+	 *
261
+	 * @param Certificate $cert
262
+	 * @return boolean
263
+	 */
264
+	private function _checkEntityName(Certificate $cert): bool
265
+	{
266
+		$name = $this->_entityName->firstDN();
267
+		if ($cert->tbsCertificate()
268
+			->subject()
269
+			->equals($name)) {
270
+			return true;
271
+		}
272
+		$exts = $cert->tbsCertificate()->extensions();
273
+		if ($exts->hasSubjectAlternativeName()) {
274
+			$ext = $exts->subjectAlternativeName();
275
+			if ($this->_checkEntityAlternativeNames($ext->names())) {
276
+				return true;
277
+			}
278
+		}
279
+		return false;
280
+	}
281 281
     
282
-    /**
283
-     * Check whether any of the subject alternative names match entityName.
284
-     *
285
-     * @param GeneralNames $san
286
-     * @return boolean
287
-     */
288
-    private function _checkEntityAlternativeNames(GeneralNames $san): bool
289
-    {
290
-        // only directory names supported for now
291
-        $name = $this->_entityName->firstDN();
292
-        foreach ($san->allOf(GeneralName::TAG_DIRECTORY_NAME) as $dn) {
293
-            if ($dn instanceof DirectoryName && $dn->dn()->equals($name)) {
294
-                return true;
295
-            }
296
-        }
297
-        return false;
298
-    }
282
+	/**
283
+	 * Check whether any of the subject alternative names match entityName.
284
+	 *
285
+	 * @param GeneralNames $san
286
+	 * @return boolean
287
+	 */
288
+	private function _checkEntityAlternativeNames(GeneralNames $san): bool
289
+	{
290
+		// only directory names supported for now
291
+		$name = $this->_entityName->firstDN();
292
+		foreach ($san->allOf(GeneralName::TAG_DIRECTORY_NAME) as $dn) {
293
+			if ($dn instanceof DirectoryName && $dn->dn()->equals($name)) {
294
+				return true;
295
+			}
296
+		}
297
+		return false;
298
+	}
299 299
 }
Please login to merge, or discard this patch.
lib/X509/AttributeCertificate/Attribute/IetfAttrSyntax.php 1 patch
Indentation   +183 added lines, -183 removed lines patch added patch discarded remove patch
@@ -19,203 +19,203 @@
 block discarded – undo
19 19
  * @link https://tools.ietf.org/html/rfc5755#section-4.4
20 20
  */
21 21
 abstract class IetfAttrSyntax extends AttributeValue implements 
22
-    \Countable,
23
-    \IteratorAggregate
22
+	\Countable,
23
+	\IteratorAggregate
24 24
 {
25
-    /**
26
-     * Policy authority.
27
-     *
28
-     * @var GeneralNames|null $_policyAuthority
29
-     */
30
-    protected $_policyAuthority;
25
+	/**
26
+	 * Policy authority.
27
+	 *
28
+	 * @var GeneralNames|null $_policyAuthority
29
+	 */
30
+	protected $_policyAuthority;
31 31
     
32
-    /**
33
-     * Values.
34
-     *
35
-     * @var IetfAttrValue[] $_values
36
-     */
37
-    protected $_values;
32
+	/**
33
+	 * Values.
34
+	 *
35
+	 * @var IetfAttrValue[] $_values
36
+	 */
37
+	protected $_values;
38 38
     
39
-    /**
40
-     * Constructor.
41
-     *
42
-     * @param IetfAttrValue[] $values
43
-     */
44
-    public function __construct(IetfAttrValue ...$values)
45
-    {
46
-        $this->_policyAuthority = null;
47
-        $this->_values = $values;
48
-    }
39
+	/**
40
+	 * Constructor.
41
+	 *
42
+	 * @param IetfAttrValue[] $values
43
+	 */
44
+	public function __construct(IetfAttrValue ...$values)
45
+	{
46
+		$this->_policyAuthority = null;
47
+		$this->_values = $values;
48
+	}
49 49
     
50
-    /**
51
-     *
52
-     * @param UnspecifiedType $el
53
-     * @return self
54
-     */
55
-    public static function fromASN1(UnspecifiedType $el)
56
-    {
57
-        $seq = $el->asSequence();
58
-        $authority = null;
59
-        $idx = 0;
60
-        if ($seq->hasTagged(0)) {
61
-            $authority = GeneralNames::fromASN1(
62
-                $seq->getTagged(0)
63
-                    ->asImplicit(Element::TYPE_SEQUENCE)
64
-                    ->asSequence());
65
-            ++$idx;
66
-        }
67
-        $values = array_map(
68
-            function (UnspecifiedType $el) {
69
-                return IetfAttrValue::fromASN1($el);
70
-            },
71
-            $seq->at($idx)
72
-                ->asSequence()
73
-                ->elements());
74
-        $obj = new static(...$values);
75
-        $obj->_policyAuthority = $authority;
76
-        return $obj;
77
-    }
50
+	/**
51
+	 *
52
+	 * @param UnspecifiedType $el
53
+	 * @return self
54
+	 */
55
+	public static function fromASN1(UnspecifiedType $el)
56
+	{
57
+		$seq = $el->asSequence();
58
+		$authority = null;
59
+		$idx = 0;
60
+		if ($seq->hasTagged(0)) {
61
+			$authority = GeneralNames::fromASN1(
62
+				$seq->getTagged(0)
63
+					->asImplicit(Element::TYPE_SEQUENCE)
64
+					->asSequence());
65
+			++$idx;
66
+		}
67
+		$values = array_map(
68
+			function (UnspecifiedType $el) {
69
+				return IetfAttrValue::fromASN1($el);
70
+			},
71
+			$seq->at($idx)
72
+				->asSequence()
73
+				->elements());
74
+		$obj = new static(...$values);
75
+		$obj->_policyAuthority = $authority;
76
+		return $obj;
77
+	}
78 78
     
79
-    /**
80
-     * Get self with policy authority.
81
-     *
82
-     * @param GeneralNames $names
83
-     * @return self
84
-     */
85
-    public function withPolicyAuthority(GeneralNames $names)
86
-    {
87
-        $obj = clone $this;
88
-        $obj->_policyAuthority = $names;
89
-        return $obj;
90
-    }
79
+	/**
80
+	 * Get self with policy authority.
81
+	 *
82
+	 * @param GeneralNames $names
83
+	 * @return self
84
+	 */
85
+	public function withPolicyAuthority(GeneralNames $names)
86
+	{
87
+		$obj = clone $this;
88
+		$obj->_policyAuthority = $names;
89
+		return $obj;
90
+	}
91 91
     
92
-    /**
93
-     * Check whether policy authority is present.
94
-     *
95
-     * @return bool
96
-     */
97
-    public function hasPolicyAuthority(): bool
98
-    {
99
-        return isset($this->_policyAuthority);
100
-    }
92
+	/**
93
+	 * Check whether policy authority is present.
94
+	 *
95
+	 * @return bool
96
+	 */
97
+	public function hasPolicyAuthority(): bool
98
+	{
99
+		return isset($this->_policyAuthority);
100
+	}
101 101
     
102
-    /**
103
-     * Get policy authority.
104
-     *
105
-     * @throws \LogicException
106
-     * @return GeneralNames
107
-     */
108
-    public function policyAuthority(): GeneralNames
109
-    {
110
-        if (!$this->hasPolicyAuthority()) {
111
-            throw new \LogicException("policyAuthority not set.");
112
-        }
113
-        return $this->_policyAuthority;
114
-    }
102
+	/**
103
+	 * Get policy authority.
104
+	 *
105
+	 * @throws \LogicException
106
+	 * @return GeneralNames
107
+	 */
108
+	public function policyAuthority(): GeneralNames
109
+	{
110
+		if (!$this->hasPolicyAuthority()) {
111
+			throw new \LogicException("policyAuthority not set.");
112
+		}
113
+		return $this->_policyAuthority;
114
+	}
115 115
     
116
-    /**
117
-     * Get values.
118
-     *
119
-     * @return IetfAttrValue[]
120
-     */
121
-    public function values(): array
122
-    {
123
-        return $this->_values;
124
-    }
116
+	/**
117
+	 * Get values.
118
+	 *
119
+	 * @return IetfAttrValue[]
120
+	 */
121
+	public function values(): array
122
+	{
123
+		return $this->_values;
124
+	}
125 125
     
126
-    /**
127
-     * Get first value.
128
-     *
129
-     * @throws \LogicException
130
-     * @return IetfAttrValue
131
-     */
132
-    public function first(): IetfAttrValue
133
-    {
134
-        if (!count($this->_values)) {
135
-            throw new \LogicException("No values.");
136
-        }
137
-        return $this->_values[0];
138
-    }
126
+	/**
127
+	 * Get first value.
128
+	 *
129
+	 * @throws \LogicException
130
+	 * @return IetfAttrValue
131
+	 */
132
+	public function first(): IetfAttrValue
133
+	{
134
+		if (!count($this->_values)) {
135
+			throw new \LogicException("No values.");
136
+		}
137
+		return $this->_values[0];
138
+	}
139 139
     
140
-    /**
141
-     *
142
-     * @see \X501\ASN1\AttributeValue\AttributeValue::toASN1()
143
-     * @return Sequence
144
-     */
145
-    public function toASN1(): Sequence
146
-    {
147
-        $elements = array();
148
-        if (isset($this->_policyAuthority)) {
149
-            $elements[] = new ImplicitlyTaggedType(0,
150
-                $this->_policyAuthority->toASN1());
151
-        }
152
-        $values = array_map(
153
-            function (IetfAttrValue $val) {
154
-                return $val->toASN1();
155
-            }, $this->_values);
156
-        $elements[] = new Sequence(...$values);
157
-        return new Sequence(...$elements);
158
-    }
140
+	/**
141
+	 *
142
+	 * @see \X501\ASN1\AttributeValue\AttributeValue::toASN1()
143
+	 * @return Sequence
144
+	 */
145
+	public function toASN1(): Sequence
146
+	{
147
+		$elements = array();
148
+		if (isset($this->_policyAuthority)) {
149
+			$elements[] = new ImplicitlyTaggedType(0,
150
+				$this->_policyAuthority->toASN1());
151
+		}
152
+		$values = array_map(
153
+			function (IetfAttrValue $val) {
154
+				return $val->toASN1();
155
+			}, $this->_values);
156
+		$elements[] = new Sequence(...$values);
157
+		return new Sequence(...$elements);
158
+	}
159 159
     
160
-    /**
161
-     *
162
-     * @see \X501\ASN1\AttributeValue\AttributeValue::stringValue()
163
-     * @return string
164
-     */
165
-    public function stringValue(): string
166
-    {
167
-        return "#" . bin2hex($this->toASN1()->toDER());
168
-    }
160
+	/**
161
+	 *
162
+	 * @see \X501\ASN1\AttributeValue\AttributeValue::stringValue()
163
+	 * @return string
164
+	 */
165
+	public function stringValue(): string
166
+	{
167
+		return "#" . bin2hex($this->toASN1()->toDER());
168
+	}
169 169
     
170
-    /**
171
-     *
172
-     * @see \X501\ASN1\AttributeValue\AttributeValue::equalityMatchingRule()
173
-     * @return BinaryMatch
174
-     */
175
-    public function equalityMatchingRule(): BinaryMatch
176
-    {
177
-        return new BinaryMatch();
178
-    }
170
+	/**
171
+	 *
172
+	 * @see \X501\ASN1\AttributeValue\AttributeValue::equalityMatchingRule()
173
+	 * @return BinaryMatch
174
+	 */
175
+	public function equalityMatchingRule(): BinaryMatch
176
+	{
177
+		return new BinaryMatch();
178
+	}
179 179
     
180
-    /**
181
-     *
182
-     * @see \X501\ASN1\AttributeValue\AttributeValue::rfc2253String()
183
-     * @return string
184
-     */
185
-    public function rfc2253String(): string
186
-    {
187
-        return $this->stringValue();
188
-    }
180
+	/**
181
+	 *
182
+	 * @see \X501\ASN1\AttributeValue\AttributeValue::rfc2253String()
183
+	 * @return string
184
+	 */
185
+	public function rfc2253String(): string
186
+	{
187
+		return $this->stringValue();
188
+	}
189 189
     
190
-    /**
191
-     *
192
-     * @see \X501\ASN1\AttributeValue\AttributeValue::_transcodedString()
193
-     * @return string
194
-     */
195
-    protected function _transcodedString(): string
196
-    {
197
-        return $this->stringValue();
198
-    }
190
+	/**
191
+	 *
192
+	 * @see \X501\ASN1\AttributeValue\AttributeValue::_transcodedString()
193
+	 * @return string
194
+	 */
195
+	protected function _transcodedString(): string
196
+	{
197
+		return $this->stringValue();
198
+	}
199 199
     
200
-    /**
201
-     * Get number of values.
202
-     *
203
-     * @see \Countable::count()
204
-     * @return int
205
-     */
206
-    public function count(): int
207
-    {
208
-        return count($this->_values);
209
-    }
200
+	/**
201
+	 * Get number of values.
202
+	 *
203
+	 * @see \Countable::count()
204
+	 * @return int
205
+	 */
206
+	public function count(): int
207
+	{
208
+		return count($this->_values);
209
+	}
210 210
     
211
-    /**
212
-     * Get iterator for values.
213
-     *
214
-     * @see \IteratorAggregate::getIterator()
215
-     * @return \ArrayIterator
216
-     */
217
-    public function getIterator(): \ArrayIterator
218
-    {
219
-        return new \ArrayIterator($this->_values);
220
-    }
211
+	/**
212
+	 * Get iterator for values.
213
+	 *
214
+	 * @see \IteratorAggregate::getIterator()
215
+	 * @return \ArrayIterator
216
+	 */
217
+	public function getIterator(): \ArrayIterator
218
+	{
219
+		return new \ArrayIterator($this->_values);
220
+	}
221 221
 }
Please login to merge, or discard this patch.
lib/X509/AttributeCertificate/Attribute/SvceAuthInfo.php 1 patch
Indentation   +139 added lines, -139 removed lines patch added patch discarded remove patch
@@ -20,156 +20,156 @@
 block discarded – undo
20 20
  */
21 21
 abstract class SvceAuthInfo extends AttributeValue
22 22
 {
23
-    /**
24
-     * Service.
25
-     *
26
-     * @var GeneralName $_service
27
-     */
28
-    protected $_service;
23
+	/**
24
+	 * Service.
25
+	 *
26
+	 * @var GeneralName $_service
27
+	 */
28
+	protected $_service;
29 29
     
30
-    /**
31
-     * Ident.
32
-     *
33
-     * @var GeneralName $_ident
34
-     */
35
-    protected $_ident;
30
+	/**
31
+	 * Ident.
32
+	 *
33
+	 * @var GeneralName $_ident
34
+	 */
35
+	protected $_ident;
36 36
     
37
-    /**
38
-     * Auth info.
39
-     *
40
-     * @var string|null $_authInfo
41
-     */
42
-    protected $_authInfo;
37
+	/**
38
+	 * Auth info.
39
+	 *
40
+	 * @var string|null $_authInfo
41
+	 */
42
+	protected $_authInfo;
43 43
     
44
-    /**
45
-     * Constructor.
46
-     *
47
-     * @param GeneralName $service
48
-     * @param GeneralName $ident
49
-     * @param string|null $auth_info
50
-     */
51
-    public function __construct(GeneralName $service, GeneralName $ident,
52
-        string $auth_info = null)
53
-    {
54
-        $this->_service = $service;
55
-        $this->_ident = $ident;
56
-        $this->_authInfo = $auth_info;
57
-    }
44
+	/**
45
+	 * Constructor.
46
+	 *
47
+	 * @param GeneralName $service
48
+	 * @param GeneralName $ident
49
+	 * @param string|null $auth_info
50
+	 */
51
+	public function __construct(GeneralName $service, GeneralName $ident,
52
+		string $auth_info = null)
53
+	{
54
+		$this->_service = $service;
55
+		$this->_ident = $ident;
56
+		$this->_authInfo = $auth_info;
57
+	}
58 58
     
59
-    /**
60
-     *
61
-     * @param UnspecifiedType $el
62
-     * @return self
63
-     */
64
-    public static function fromASN1(UnspecifiedType $el)
65
-    {
66
-        $seq = $el->asSequence();
67
-        $service = GeneralName::fromASN1($seq->at(0)->asTagged());
68
-        $ident = GeneralName::fromASN1($seq->at(1)->asTagged());
69
-        $auth_info = null;
70
-        if ($seq->has(2, Element::TYPE_OCTET_STRING)) {
71
-            $auth_info = $seq->at(2)
72
-                ->asString()
73
-                ->string();
74
-        }
75
-        return new static($service, $ident, $auth_info);
76
-    }
59
+	/**
60
+	 *
61
+	 * @param UnspecifiedType $el
62
+	 * @return self
63
+	 */
64
+	public static function fromASN1(UnspecifiedType $el)
65
+	{
66
+		$seq = $el->asSequence();
67
+		$service = GeneralName::fromASN1($seq->at(0)->asTagged());
68
+		$ident = GeneralName::fromASN1($seq->at(1)->asTagged());
69
+		$auth_info = null;
70
+		if ($seq->has(2, Element::TYPE_OCTET_STRING)) {
71
+			$auth_info = $seq->at(2)
72
+				->asString()
73
+				->string();
74
+		}
75
+		return new static($service, $ident, $auth_info);
76
+	}
77 77
     
78
-    /**
79
-     * Get service name.
80
-     *
81
-     * @return GeneralName
82
-     */
83
-    public function service(): GeneralName
84
-    {
85
-        return $this->_service;
86
-    }
78
+	/**
79
+	 * Get service name.
80
+	 *
81
+	 * @return GeneralName
82
+	 */
83
+	public function service(): GeneralName
84
+	{
85
+		return $this->_service;
86
+	}
87 87
     
88
-    /**
89
-     * Get ident.
90
-     *
91
-     * @return GeneralName
92
-     */
93
-    public function ident(): GeneralName
94
-    {
95
-        return $this->_ident;
96
-    }
88
+	/**
89
+	 * Get ident.
90
+	 *
91
+	 * @return GeneralName
92
+	 */
93
+	public function ident(): GeneralName
94
+	{
95
+		return $this->_ident;
96
+	}
97 97
     
98
-    /**
99
-     * Check whether authentication info is present.
100
-     *
101
-     * @return bool
102
-     */
103
-    public function hasAuthInfo(): bool
104
-    {
105
-        return isset($this->_authInfo);
106
-    }
98
+	/**
99
+	 * Check whether authentication info is present.
100
+	 *
101
+	 * @return bool
102
+	 */
103
+	public function hasAuthInfo(): bool
104
+	{
105
+		return isset($this->_authInfo);
106
+	}
107 107
     
108
-    /**
109
-     * Get authentication info.
110
-     *
111
-     * @throws \LogicException
112
-     * @return string
113
-     */
114
-    public function authInfo(): string
115
-    {
116
-        if (!$this->hasAuthInfo()) {
117
-            throw new \LogicException("authInfo not set.");
118
-        }
119
-        return $this->_authInfo;
120
-    }
108
+	/**
109
+	 * Get authentication info.
110
+	 *
111
+	 * @throws \LogicException
112
+	 * @return string
113
+	 */
114
+	public function authInfo(): string
115
+	{
116
+		if (!$this->hasAuthInfo()) {
117
+			throw new \LogicException("authInfo not set.");
118
+		}
119
+		return $this->_authInfo;
120
+	}
121 121
     
122
-    /**
123
-     *
124
-     * @see \X501\ASN1\AttributeValue\AttributeValue::toASN1()
125
-     * @return Sequence
126
-     */
127
-    public function toASN1(): Sequence
128
-    {
129
-        $elements = array($this->_service->toASN1(), $this->_ident->toASN1());
130
-        if (isset($this->_authInfo)) {
131
-            $elements[] = new OctetString($this->_authInfo);
132
-        }
133
-        return new Sequence(...$elements);
134
-    }
122
+	/**
123
+	 *
124
+	 * @see \X501\ASN1\AttributeValue\AttributeValue::toASN1()
125
+	 * @return Sequence
126
+	 */
127
+	public function toASN1(): Sequence
128
+	{
129
+		$elements = array($this->_service->toASN1(), $this->_ident->toASN1());
130
+		if (isset($this->_authInfo)) {
131
+			$elements[] = new OctetString($this->_authInfo);
132
+		}
133
+		return new Sequence(...$elements);
134
+	}
135 135
     
136
-    /**
137
-     *
138
-     * @see \X501\ASN1\AttributeValue\AttributeValue::stringValue()
139
-     * @return string
140
-     */
141
-    public function stringValue(): string
142
-    {
143
-        return "#" . bin2hex($this->toASN1()->toDER());
144
-    }
136
+	/**
137
+	 *
138
+	 * @see \X501\ASN1\AttributeValue\AttributeValue::stringValue()
139
+	 * @return string
140
+	 */
141
+	public function stringValue(): string
142
+	{
143
+		return "#" . bin2hex($this->toASN1()->toDER());
144
+	}
145 145
     
146
-    /**
147
-     *
148
-     * @see \X501\ASN1\AttributeValue\AttributeValue::equalityMatchingRule()
149
-     * @return BinaryMatch
150
-     */
151
-    public function equalityMatchingRule(): BinaryMatch
152
-    {
153
-        return new BinaryMatch();
154
-    }
146
+	/**
147
+	 *
148
+	 * @see \X501\ASN1\AttributeValue\AttributeValue::equalityMatchingRule()
149
+	 * @return BinaryMatch
150
+	 */
151
+	public function equalityMatchingRule(): BinaryMatch
152
+	{
153
+		return new BinaryMatch();
154
+	}
155 155
     
156
-    /**
157
-     *
158
-     * @see \X501\ASN1\AttributeValue\AttributeValue::rfc2253String()
159
-     * @return string
160
-     */
161
-    public function rfc2253String(): string
162
-    {
163
-        return $this->stringValue();
164
-    }
156
+	/**
157
+	 *
158
+	 * @see \X501\ASN1\AttributeValue\AttributeValue::rfc2253String()
159
+	 * @return string
160
+	 */
161
+	public function rfc2253String(): string
162
+	{
163
+		return $this->stringValue();
164
+	}
165 165
     
166
-    /**
167
-     *
168
-     * @see \X501\ASN1\AttributeValue\AttributeValue::_transcodedString()
169
-     * @return string
170
-     */
171
-    protected function _transcodedString(): string
172
-    {
173
-        return $this->stringValue();
174
-    }
166
+	/**
167
+	 *
168
+	 * @see \X501\ASN1\AttributeValue\AttributeValue::_transcodedString()
169
+	 * @return string
170
+	 */
171
+	protected function _transcodedString(): string
172
+	{
173
+		return $this->stringValue();
174
+	}
175 175
 }
Please login to merge, or discard this patch.
lib/X509/AttributeCertificate/Attribute/GroupAttributeValue.php 1 patch
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -11,16 +11,16 @@
 block discarded – undo
11 11
  */
12 12
 class GroupAttributeValue extends IetfAttrSyntax
13 13
 {
14
-    const OID = "1.3.6.1.5.5.7.10.4";
14
+	const OID = "1.3.6.1.5.5.7.10.4";
15 15
     
16
-    /**
17
-     * Constructor.
18
-     *
19
-     * @param IetfAttrValue[] $values
20
-     */
21
-    public function __construct(IetfAttrValue ...$values)
22
-    {
23
-        parent::__construct(...$values);
24
-        $this->_oid = self::OID;
25
-    }
16
+	/**
17
+	 * Constructor.
18
+	 *
19
+	 * @param IetfAttrValue[] $values
20
+	 */
21
+	public function __construct(IetfAttrValue ...$values)
22
+	{
23
+		parent::__construct(...$values);
24
+		$this->_oid = self::OID;
25
+	}
26 26
 }
Please login to merge, or discard this patch.
lib/X509/AttributeCertificate/Attribute/IetfAttrValue.php 1 patch
Indentation   +144 added lines, -144 removed lines patch added patch discarded remove patch
@@ -17,161 +17,161 @@
 block discarded – undo
17 17
  */
18 18
 class IetfAttrValue
19 19
 {
20
-    /**
21
-     * Element type tag.
22
-     *
23
-     * @var int $_type
24
-     */
25
-    protected $_type;
20
+	/**
21
+	 * Element type tag.
22
+	 *
23
+	 * @var int $_type
24
+	 */
25
+	protected $_type;
26 26
     
27
-    /**
28
-     * Value.
29
-     *
30
-     * @var string $_value
31
-     */
32
-    protected $_value;
27
+	/**
28
+	 * Value.
29
+	 *
30
+	 * @var string $_value
31
+	 */
32
+	protected $_value;
33 33
     
34
-    /**
35
-     * Constructor.
36
-     *
37
-     * @param string $value
38
-     * @param int $type
39
-     */
40
-    public function __construct(string $value, int $type)
41
-    {
42
-        $this->_type = $type;
43
-        $this->_value = $value;
44
-    }
34
+	/**
35
+	 * Constructor.
36
+	 *
37
+	 * @param string $value
38
+	 * @param int $type
39
+	 */
40
+	public function __construct(string $value, int $type)
41
+	{
42
+		$this->_type = $type;
43
+		$this->_value = $value;
44
+	}
45 45
     
46
-    /**
47
-     * Initialize from ASN.1.
48
-     *
49
-     * @param UnspecifiedType $el
50
-     * @throws \UnexpectedValueException
51
-     * @return self
52
-     */
53
-    public static function fromASN1(UnspecifiedType $el)
54
-    {
55
-        switch ($el->tag()) {
56
-            case Element::TYPE_OCTET_STRING:
57
-            case Element::TYPE_UTF8_STRING:
58
-                return new self($el->asString()->string(), $el->tag());
59
-            case Element::TYPE_OBJECT_IDENTIFIER:
60
-                return new self($el->asObjectIdentifier()->oid(), $el->tag());
61
-        }
62
-        throw new \UnexpectedValueException(
63
-            "Type " . Element::tagToName($el->tag()) . " not supported.");
64
-    }
46
+	/**
47
+	 * Initialize from ASN.1.
48
+	 *
49
+	 * @param UnspecifiedType $el
50
+	 * @throws \UnexpectedValueException
51
+	 * @return self
52
+	 */
53
+	public static function fromASN1(UnspecifiedType $el)
54
+	{
55
+		switch ($el->tag()) {
56
+			case Element::TYPE_OCTET_STRING:
57
+			case Element::TYPE_UTF8_STRING:
58
+				return new self($el->asString()->string(), $el->tag());
59
+			case Element::TYPE_OBJECT_IDENTIFIER:
60
+				return new self($el->asObjectIdentifier()->oid(), $el->tag());
61
+		}
62
+		throw new \UnexpectedValueException(
63
+			"Type " . Element::tagToName($el->tag()) . " not supported.");
64
+	}
65 65
     
66
-    /**
67
-     * Initialize from octet string.
68
-     *
69
-     * @param string $octets
70
-     * @return self
71
-     */
72
-    public static function fromOctets(string $octets)
73
-    {
74
-        return new self($octets, Element::TYPE_OCTET_STRING);
75
-    }
66
+	/**
67
+	 * Initialize from octet string.
68
+	 *
69
+	 * @param string $octets
70
+	 * @return self
71
+	 */
72
+	public static function fromOctets(string $octets)
73
+	{
74
+		return new self($octets, Element::TYPE_OCTET_STRING);
75
+	}
76 76
     
77
-    /**
78
-     * Initialize from UTF-8 string.
79
-     *
80
-     * @param string $str
81
-     * @return self
82
-     */
83
-    public static function fromString(string $str)
84
-    {
85
-        return new self($str, Element::TYPE_UTF8_STRING);
86
-    }
77
+	/**
78
+	 * Initialize from UTF-8 string.
79
+	 *
80
+	 * @param string $str
81
+	 * @return self
82
+	 */
83
+	public static function fromString(string $str)
84
+	{
85
+		return new self($str, Element::TYPE_UTF8_STRING);
86
+	}
87 87
     
88
-    /**
89
-     * Initialize from OID.
90
-     *
91
-     * @param string $oid
92
-     * @return self
93
-     */
94
-    public static function fromOID(string $oid)
95
-    {
96
-        return new self($oid, Element::TYPE_OBJECT_IDENTIFIER);
97
-    }
88
+	/**
89
+	 * Initialize from OID.
90
+	 *
91
+	 * @param string $oid
92
+	 * @return self
93
+	 */
94
+	public static function fromOID(string $oid)
95
+	{
96
+		return new self($oid, Element::TYPE_OBJECT_IDENTIFIER);
97
+	}
98 98
     
99
-    /**
100
-     * Get type tag.
101
-     *
102
-     * @return int
103
-     */
104
-    public function type(): int
105
-    {
106
-        return $this->_type;
107
-    }
99
+	/**
100
+	 * Get type tag.
101
+	 *
102
+	 * @return int
103
+	 */
104
+	public function type(): int
105
+	{
106
+		return $this->_type;
107
+	}
108 108
     
109
-    /**
110
-     * Whether value type is octets.
111
-     *
112
-     * @return bool
113
-     */
114
-    public function isOctets(): bool
115
-    {
116
-        return $this->_type === Element::TYPE_OCTET_STRING;
117
-    }
109
+	/**
110
+	 * Whether value type is octets.
111
+	 *
112
+	 * @return bool
113
+	 */
114
+	public function isOctets(): bool
115
+	{
116
+		return $this->_type === Element::TYPE_OCTET_STRING;
117
+	}
118 118
     
119
-    /**
120
-     * Whether value type is OID.
121
-     *
122
-     * @return bool
123
-     */
124
-    public function isOID(): bool
125
-    {
126
-        return $this->_type === Element::TYPE_OBJECT_IDENTIFIER;
127
-    }
119
+	/**
120
+	 * Whether value type is OID.
121
+	 *
122
+	 * @return bool
123
+	 */
124
+	public function isOID(): bool
125
+	{
126
+		return $this->_type === Element::TYPE_OBJECT_IDENTIFIER;
127
+	}
128 128
     
129
-    /**
130
-     * Whether value type is string.
131
-     *
132
-     * @return bool
133
-     */
134
-    public function isString(): bool
135
-    {
136
-        return $this->_type === Element::TYPE_UTF8_STRING;
137
-    }
129
+	/**
130
+	 * Whether value type is string.
131
+	 *
132
+	 * @return bool
133
+	 */
134
+	public function isString(): bool
135
+	{
136
+		return $this->_type === Element::TYPE_UTF8_STRING;
137
+	}
138 138
     
139
-    /**
140
-     * Get value.
141
-     *
142
-     * @return string
143
-     */
144
-    public function value(): string
145
-    {
146
-        return $this->_value;
147
-    }
139
+	/**
140
+	 * Get value.
141
+	 *
142
+	 * @return string
143
+	 */
144
+	public function value(): string
145
+	{
146
+		return $this->_value;
147
+	}
148 148
     
149
-    /**
150
-     * Generate ASN.1 structure.
151
-     *
152
-     * @throws \LogicException
153
-     * @return Element
154
-     */
155
-    public function toASN1(): Element
156
-    {
157
-        switch ($this->_type) {
158
-            case Element::TYPE_OCTET_STRING:
159
-                return new OctetString($this->_value);
160
-            case Element::TYPE_UTF8_STRING:
161
-                return new UTF8String($this->_value);
162
-            case Element::TYPE_OBJECT_IDENTIFIER:
163
-                return new ObjectIdentifier($this->_value);
164
-        }
165
-        throw new \LogicException(
166
-            "Type " . Element::tagToName($this->_type) . " not supported.");
167
-    }
149
+	/**
150
+	 * Generate ASN.1 structure.
151
+	 *
152
+	 * @throws \LogicException
153
+	 * @return Element
154
+	 */
155
+	public function toASN1(): Element
156
+	{
157
+		switch ($this->_type) {
158
+			case Element::TYPE_OCTET_STRING:
159
+				return new OctetString($this->_value);
160
+			case Element::TYPE_UTF8_STRING:
161
+				return new UTF8String($this->_value);
162
+			case Element::TYPE_OBJECT_IDENTIFIER:
163
+				return new ObjectIdentifier($this->_value);
164
+		}
165
+		throw new \LogicException(
166
+			"Type " . Element::tagToName($this->_type) . " not supported.");
167
+	}
168 168
     
169
-    /**
170
-     *
171
-     * @return string
172
-     */
173
-    public function __toString()
174
-    {
175
-        return $this->_value;
176
-    }
169
+	/**
170
+	 *
171
+	 * @return string
172
+	 */
173
+	public function __toString()
174
+	{
175
+		return $this->_value;
176
+	}
177 177
 }
Please login to merge, or discard this patch.
lib/X509/AttributeCertificate/Attribute/ChargingIdentityAttributeValue.php 1 patch
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -11,16 +11,16 @@
 block discarded – undo
11 11
  */
12 12
 class ChargingIdentityAttributeValue extends IetfAttrSyntax
13 13
 {
14
-    const OID = "1.3.6.1.5.5.7.10.3";
14
+	const OID = "1.3.6.1.5.5.7.10.3";
15 15
     
16
-    /**
17
-     * Constructor.
18
-     *
19
-     * @param IetfAttrValue[] $values
20
-     */
21
-    public function __construct(IetfAttrValue ...$values)
22
-    {
23
-        parent::__construct(...$values);
24
-        $this->_oid = self::OID;
25
-    }
16
+	/**
17
+	 * Constructor.
18
+	 *
19
+	 * @param IetfAttrValue[] $values
20
+	 */
21
+	public function __construct(IetfAttrValue ...$values)
22
+	{
23
+		parent::__construct(...$values);
24
+		$this->_oid = self::OID;
25
+	}
26 26
 }
Please login to merge, or discard this patch.