Combining Authority Key Identifier extension options in the schema. (#651)
* Combining Authority Key Identifier extension options in the schema. This makes processing them in the cert/csr generation stage make more sense because they are two options in the same x.509 extension. They were already in the same part of the schema for authorities, but this makes the certificates follow the same pattern, and it allows them to share the same schema/validation layout. * Updating schema tests to match changes * Fixing an idiot typo * I promise to stop using Travis as a typo-corrector soon.
This commit is contained in:
parent
7f2b44db04
commit
25340fd744
|
@ -170,12 +170,9 @@ class BasicConstraintsSchema(BaseExtensionSchema):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class AuthorityIdentifierSchema(BaseExtensionSchema):
|
|
||||||
use_authority_cert = fields.Boolean()
|
|
||||||
|
|
||||||
|
|
||||||
class AuthorityKeyIdentifierSchema(BaseExtensionSchema):
|
class AuthorityKeyIdentifierSchema(BaseExtensionSchema):
|
||||||
use_key_identifier = fields.Boolean()
|
use_key_identifier = fields.Boolean()
|
||||||
|
use_authority_cert = fields.Boolean()
|
||||||
|
|
||||||
|
|
||||||
class CertificateInfoAccessSchema(BaseExtensionSchema):
|
class CertificateInfoAccessSchema(BaseExtensionSchema):
|
||||||
|
@ -240,7 +237,6 @@ class ExtensionSchema(BaseExtensionSchema):
|
||||||
extended_key_usage = fields.Nested(ExtendedKeyUsageSchema)
|
extended_key_usage = fields.Nested(ExtendedKeyUsageSchema)
|
||||||
subject_key_identifier = fields.Nested(SubjectKeyIdentifierSchema)
|
subject_key_identifier = fields.Nested(SubjectKeyIdentifierSchema)
|
||||||
sub_alt_names = fields.Nested(SubAltNamesSchema)
|
sub_alt_names = fields.Nested(SubAltNamesSchema)
|
||||||
authority_identifier = fields.Nested(AuthorityIdentifierSchema)
|
|
||||||
authority_key_identifier = fields.Nested(AuthorityKeyIdentifierSchema)
|
authority_key_identifier = fields.Nested(AuthorityKeyIdentifierSchema)
|
||||||
certificate_info_access = fields.Nested(CertificateInfoAccessSchema)
|
certificate_info_access = fields.Nested(CertificateInfoAccessSchema)
|
||||||
custom = fields.List(fields.Nested(CustomOIDSchema))
|
custom = fields.List(fields.Nested(CustomOIDSchema))
|
||||||
|
|
|
@ -184,15 +184,13 @@
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<label tooltip-trigger="mouseenter" tooltip-placement="top"
|
<label tooltip-trigger="mouseenter" tooltip-placement="top"
|
||||||
uib-tooltip="Put Issuer's keyIdentifier in this extension">
|
uib-tooltip="Put Issuer's keyIdentifier in this extension">
|
||||||
<input type="checkbox" ng-model="certificate.extensions.authorityKeyIdentifier.useKeyIdentifier">Key
|
<input type="checkbox" ng-model="certificate.extensions.authorityKeyIdentifier.useKeyIdentifier">Key Identifier
|
||||||
Identifier
|
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<label tooltip-trigger="mouseenter" tooltip-placement="top"
|
<label tooltip-trigger="mouseenter" tooltip-placement="top"
|
||||||
uib-tooltip="Put Issuer's Name and Serial number">
|
uib-tooltip="Put Issuer's Name and Serial number">
|
||||||
<input type="checkbox" ng-model="certificate.extensions.authorityIdentifier.useAuthorityCert">Authority
|
<input type="checkbox" ng-model="certificate.extensions.authorityKeyIdentifier.useAuthorityCert">Authority Certificate
|
||||||
Certificate
|
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -65,27 +65,19 @@ def test_certificate_edit_schema(session):
|
||||||
assert len(data['notifications']) == 3
|
assert len(data['notifications']) == 3
|
||||||
|
|
||||||
|
|
||||||
def test_authority_identifier_schema():
|
|
||||||
from lemur.schemas import AuthorityIdentifierSchema
|
|
||||||
input_data = {'useAuthorityCert': True}
|
|
||||||
|
|
||||||
data, errors = AuthorityIdentifierSchema().load(input_data)
|
|
||||||
|
|
||||||
assert data == {'use_authority_cert': True}
|
|
||||||
assert not errors
|
|
||||||
|
|
||||||
data, errors = AuthorityIdentifierSchema().dumps(data)
|
|
||||||
assert not errors
|
|
||||||
assert data == json.dumps(input_data)
|
|
||||||
|
|
||||||
|
|
||||||
def test_authority_key_identifier_schema():
|
def test_authority_key_identifier_schema():
|
||||||
from lemur.schemas import AuthorityKeyIdentifierSchema
|
from lemur.schemas import AuthorityKeyIdentifierSchema
|
||||||
input_data = {'useKeyIdentifier': True}
|
input_data = {
|
||||||
|
'useKeyIdentifier': True,
|
||||||
|
'useAuthorityCert': True
|
||||||
|
}
|
||||||
|
|
||||||
data, errors = AuthorityKeyIdentifierSchema().load(input_data)
|
data, errors = AuthorityKeyIdentifierSchema().load(input_data)
|
||||||
|
|
||||||
assert data == {'use_key_identifier': True}
|
assert data == {
|
||||||
|
'use_key_identifier': True,
|
||||||
|
'use_authority_cert': True
|
||||||
|
}
|
||||||
assert not errors
|
assert not errors
|
||||||
|
|
||||||
data, errors = AuthorityKeyIdentifierSchema().dumps(data)
|
data, errors = AuthorityKeyIdentifierSchema().dumps(data)
|
||||||
|
|
Loading…
Reference in New Issue