Skip to content

Commit 5e64a88

Browse files
committed
- Added test cases for Service generated CSR.
1 parent 87081b3 commit 5e64a88

1 file changed

Lines changed: 25 additions & 8 deletions

File tree

tests/test_e2e.py

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
RANDOM_DOMAIN, CLOUD_ZONE, \
3737
TPP_ZONE, TPP_ZONE_ECDSA
3838
from vcert import CloudConnection, CertificateRequest, TPPConnection, FakeConnection, ZoneConfig, RevocationRequest, \
39-
TPPTokenConnection, CertField, KeyType, CustomField
39+
TPPTokenConnection, CertField, KeyType, CustomField, CSR_ORIGIN_SERVICE
4040
from vcert.errors import ClientBadData, ServerUnexptedBehavior
4141
from vcert.pem import parse_pem
4242

@@ -287,6 +287,15 @@ def test_tpp_token_enroll(self):
287287
except Exception as err:
288288
self.fail("Error in test: %s" % err.message)
289289

290+
def test_tpp_token_enroll_with_service_generated_csr(self):
291+
cn = random_word(10) + ".venafi.example.com"
292+
try:
293+
_, _, _, _, cert_guid = enroll(self.tpp_conn, self.tpp_zone, cn=cn, service_generated_csr=True)
294+
cert_config = self.tpp_conn._get_certificate_details(cert_guid)
295+
self.assertEqual(cert_config["Origin"], "Venafi VCert-Python")
296+
except Exception as err:
297+
self.fail("Error in test: %s" % err.message)
298+
290299
def test_tpp_token_enroll_with_custom_fields(self):
291300
cn = random_word(10) + ".venafi.example.com"
292301
custom_fields = [
@@ -496,7 +505,8 @@ def enroll_with_zone_update(conn, zone, cn=None):
496505
return cert, request.cert_guid
497506

498507

499-
def enroll(conn, zone, cn=None, private_key=None, public_key=None, password=None, csr=None, custom_fields=None):
508+
def enroll(conn, zone, cn=None, private_key=None, public_key=None, password=None, csr=None, custom_fields=None,
509+
service_generated_csr=False):
500510
request = CertificateRequest(
501511
common_name=cn,
502512
private_key=private_key,
@@ -515,6 +525,8 @@ def enroll(conn, zone, cn=None, private_key=None, public_key=None, password=None
515525

516526
if csr:
517527
request.csr = csr
528+
elif service_generated_csr:
529+
request.csr_origin = CSR_ORIGIN_SERVICE
518530

519531
conn.request_cert(request, zone)
520532
cert = conn.retrieve_cert(request)
@@ -523,9 +535,10 @@ def enroll(conn, zone, cn=None, private_key=None, public_key=None, password=None
523535
# and save into file
524536
f = open("./cert.pem", "w")
525537
f.write(cert.full_chain)
526-
f = open("./cert.key", "w")
527-
f.write(request.private_key_pem)
528-
f.close()
538+
if not service_generated_csr:
539+
f = open("./cert.key", "w")
540+
f.write(request.private_key_pem)
541+
f.close()
529542

530543
cert = x509.load_pem_x509_certificate(cert.cert.encode(), default_backend())
531544
assert isinstance(cert, x509.Certificate)
@@ -551,11 +564,15 @@ def enroll(conn, zone, cn=None, private_key=None, public_key=None, password=None
551564
format=serialization.PublicFormat.SubjectPublicKeyInfo
552565
).decode()
553566
else:
554-
source_public_key_pem = request.public_key_pem
567+
source_public_key_pem = request.public_key_pem if not service_generated_csr else None
555568
print(source_public_key_pem)
556569
print(cert_public_key_pem)
557-
assert source_public_key_pem == cert_public_key_pem
558-
return request.id, request.private_key_pem, cert, cert_public_key_pem, request.cert_guid
570+
571+
if not service_generated_csr:
572+
assert source_public_key_pem == cert_public_key_pem
573+
private_key_pem = request.private_key_pem if not service_generated_csr else None
574+
575+
return request.id, private_key_pem, cert, cert_public_key_pem, request.cert_guid
559576

560577

561578
def renew(conn, cert_id, pkey, sn, cn):

0 commit comments

Comments
 (0)