def test_read_private_key_invalid_curve(self): """ Test that we require NIST384p for the signing key. """ # Write private key to a temp file. key_file = tempfile.NamedTemporaryFile() key_file.write(TEST_SECT163K1_PRIVATE_KEY_PEM) key_file.flush() with self.assertRaises(ValidationError): util.read_private_key(key_file.name) key_file.close()
def run(self, values): if values.signing_key_option: log.warn("The --signing-key option is deprecated and will be removed " "in a future release.") signing_key = values.signing_key or values.signing_key_option if not signing_key: raise ValidationError("Signing key path was not specified") crypto = util.read_private_key(signing_key) exp = None if values.exp: exp = parse_timestamp(values.exp) nbf = None if values.nbf: nbf = parse_timestamp(values.nbf) customer = None if values.customer: customer = str(values.customer) claims = {} if values.claims: for name_value in values.claims: name, value = util.parse_name_value(name_value) validate_name_value(name, value) if name in claims: raise ValidationError("Claim %s specified multiple times" % name) claims[name] = value jwt_string = make_jwt(crypto, exp=exp, nbf=nbf, customer=customer, claims=claims) log.debug(jwt_string) log.debug("Header: %s", json.dumps(get_header(jwt_string))) log.debug("Payload: %s", json.dumps(get_payload(jwt_string))) print(jwt_string) return 0
def run(self, values): crypto = util.read_private_key(values.signing_key) exp = None if values.exp: exp = parse_timestamp(values.exp) nbf = None if values.nbf: nbf = parse_timestamp(values.nbf) customer = None if values.customer: customer = str(values.customer) claims = {} if values.claims: for name_value in values.claims: name, value = util.parse_name_value(name_value) claims[name] = value jwt_string = make_jwt( crypto, exp=exp, nbf=nbf, customer=customer, claims=claims ) log.debug(jwt_string) log.debug('Header: %s', json.dumps(get_header(jwt_string))) log.debug('Payload: %s', json.dumps(get_payload(jwt_string))) print(jwt_string) return 0
def run(self, values): crypto = util.read_private_key(values.signing_key) exp = None if values.exp: exp = parse_timestamp(values.exp) nbf = None if values.nbf: nbf = parse_timestamp(values.nbf) customer = None if values.customer: customer = str(values.customer) claims = {} if values.claims: for name_value in values.claims: name, value = util.parse_name_value(name_value) claims[name] = value jwt_string = make_jwt(crypto, exp=exp, nbf=nbf, customer=customer, claims=claims) log.debug(jwt_string) log.debug('Header: %s', json.dumps(get_header(jwt_string))) log.debug('Payload: %s', json.dumps(get_payload(jwt_string))) print(jwt_string) return 0
def test_read_private_key(self): """ Test reading the signing key from a file. """ # Write private key to a temp file. key_file = tempfile.NamedTemporaryFile() key_file.write(test_crypto.TEST_PRIVATE_KEY_PEM) key_file.flush() crypto = util.read_private_key(key_file.name) self.assertEqual( test_crypto.TEST_PRIVATE_KEY_X, crypto.x) key_file.close()
def test_read_private_key_io_error(self): """ Test that we handle IOError when reading the signing key. """ # Read from a directory. with self.assertRaises(ValidationError): util.read_private_key('.') # Read from a file that doesn't exist. with self.assertRaises(ValidationError): util.read_private_key('nothing_here.pem') # Read from a malformed file. key_file = tempfile.NamedTemporaryFile() key_file.write('abc') key_file.flush() with self.assertRaises(ValidationError): util.read_private_key(key_file.name) key_file.close()
def run(self, values): crypto = util.read_private_key(values.private_key_path) print crypto.public_key_pem return 0