Source code for commands.create_single_test_issuing_ca
"""Django management command for adding issuing CA test data."""from__future__importannotationsfromcryptography.hazmat.primitivesimporthashesfromcryptography.hazmat.primitives.asymmetricimportec,rsafromdjango.core.management.baseimportBaseCommandfrom.base_commandsimportCertificateCreationCommandMixin
[docs]classCommand(CertificateCreationCommandMixin,BaseCommand):"""Adds a Root CA and three issuing CAs to the database."""
[docs]help='Adds a RSA 2048 / SHA256 Root CA and an issuing CAs to the database for testing purposes.'
[docs]defhandle(self,*_args:tuple[str],**_kwargs:dict[str,str])->None:"""Adds a Root CA and an issuing CAs to the database."""rsa2_root_ca_key=rsa.generate_private_key(public_exponent=65537,key_size=2048)rsa2_issuing_ca_key=rsa.generate_private_key(public_exponent=65537,key_size=2048)rsa2_root,_=self.create_root_ca('Root-CA RSA-2048-SHA256 - Test - Fixture',private_key=rsa2_root_ca_key,hash_algorithm=hashes.SHA256())rsa2_issuing_ca,_key=self.create_issuing_ca(issuer_private_key=rsa2_root_ca_key,private_key=rsa2_issuing_ca_key,issuer_cn='Root-CA RSA-2048-SHA256 - Test - Fixture',subject_cn='Issuing CA A - Test - Fixture',hash_algorithm=hashes.SHA256(),)self.save_issuing_ca(issuing_ca_cert=rsa2_issuing_ca,private_key=rsa2_issuing_ca_key,chain=[rsa2_root],unique_name='issuing-ca-a-test-fixture',)