Skip to content

Commit 526fc90

Browse files
committed
- Added test for legacy TPP connection to retrieve SHH CA public key and principals
1 parent 054bbe2 commit 526fc90

1 file changed

Lines changed: 29 additions & 6 deletions

File tree

tests/test_ssh.py

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@
1919
import unittest
2020

2121
from assets import SSH_CERT_DATA, SSH_PRIVATE_KEY, SSH_PUBLIC_KEY
22-
from test_env import TPP_TOKEN_URL, TPP_USER, TPP_PASSWORD, TPP_SSH_CADN
22+
from test_env import TPP_TOKEN_URL, TPP_USER, TPP_PASSWORD, TPP_SSH_CADN, TPP_URL
2323
from test_utils import timestamp
2424
from vcert import (CommonConnection, SSHCertRequest, TPPTokenConnection, Authentication,
25-
SCOPE_SSH, write_ssh_files, logger, venafi_connection, VenafiPlatform)
25+
SCOPE_SSH, write_ssh_files, logger, venafi_connection, VenafiPlatform, TPPConnection)
2626
from vcert.ssh_utils import SSHRetrieveResponse, SSHKeyPair, SSHCATemplateRequest
2727

2828
log = logger.get_child("test-ssh")
@@ -31,12 +31,12 @@
3131
SSH_CERT_DATA_ERROR = "Certificate data is empty for Certificate {}" # type: str
3232

3333

34-
class TestTPPSSHCertificate(unittest.TestCase):
34+
class TestTPPTokenSSHCertificate(unittest.TestCase):
3535
def __init__(self, *args, **kwargs):
3636
self.tpp_conn = TPPTokenConnection(url=TPP_TOKEN_URL, http_request_kwargs={'verify': "/tmp/chain.pem"})
3737
auth = Authentication(user=TPP_USER, password=TPP_PASSWORD, scope=SCOPE_SSH)
3838
self.tpp_conn.get_access_token(auth)
39-
super(TestTPPSSHCertificate, self).__init__(*args, **kwargs)
39+
super(TestTPPTokenSSHCertificate, self).__init__(*args, **kwargs)
4040

4141
def test_enroll_local_generated_keypair(self):
4242
keypair = SSHKeyPair()
@@ -75,8 +75,20 @@ def test_retrieve_ca_public_key(self):
7575
log.debug(f"{TPP_SSH_CADN} Public Key data:\n{ssh_config.ca_public_key}")
7676

7777
def test_retrieve_ca_public_key_and_principals(self):
78-
request = SSHCATemplateRequest(ca_template=TPP_SSH_CADN)
79-
ssh_config = self.tpp_conn.retrieve_ssh_config(ca_request=request)
78+
ssh_config = _retrieve_ssh_config(self.tpp_conn)
79+
self.assertIsNotNone(ssh_config.ca_public_key, f"{TPP_SSH_CADN} Public Key data is empty")
80+
self.assertIsNotNone(ssh_config.ca_principals, f"{TPP_SSH_CADN} default principals is empty")
81+
log.debug(f"{TPP_SSH_CADN} Public Key data: {ssh_config.ca_public_key}")
82+
log.debug(f"{TPP_SSH_CADN} default principals: {ssh_config.ca_principals}")
83+
84+
85+
class TestTPPSSHCertificate(unittest.TestCase):
86+
def __init__(self, *args, **kwargs):
87+
self.tpp_conn = TPPConnection(TPP_USER, TPP_PASSWORD, TPP_URL, http_request_kwargs={'verify': "/tmp/chain.pem"})
88+
super(TestTPPSSHCertificate, self).__init__(*args, **kwargs)
89+
90+
def test_retrieve_ca_public_key_and_principals(self):
91+
ssh_config = _retrieve_ssh_config(self.tpp_conn)
8092
self.assertIsNotNone(ssh_config.ca_public_key, f"{TPP_SSH_CADN} Public Key data is empty")
8193
self.assertIsNotNone(ssh_config.ca_principals, f"{TPP_SSH_CADN} default principals is empty")
8294
log.debug(f"{TPP_SSH_CADN} Public Key data: {ssh_config.ca_public_key}")
@@ -122,5 +134,16 @@ def _enroll_ssh_cert(connector, request):
122134
return response
123135

124136

137+
def _retrieve_ssh_config(connection):
138+
"""
139+
140+
:param vcert.AbstractTPPConnection connection:
141+
:rtype: vcert.SSHConfig
142+
"""
143+
request = SSHCATemplateRequest(ca_template=TPP_SSH_CADN)
144+
ssh_config = connection.retrieve_ssh_config(ca_request=request)
145+
return ssh_config
146+
147+
125148
def _random_key_id():
126149
return f"vcert-python-ssh-{timestamp()}"

0 commit comments

Comments
 (0)