Ejemplo n.º 1
0
    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()
Ejemplo n.º 2
0
    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()
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
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
Ejemplo n.º 5
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
Ejemplo n.º 6
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()
Ejemplo n.º 7
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()
Ejemplo n.º 8
0
    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()
Ejemplo n.º 9
0
    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()
Ejemplo n.º 10
0
 def run(self, values):
     crypto = util.read_private_key(values.private_key_path)
     print crypto.public_key_pem
     return 0
Ejemplo n.º 11
0
 def run(self, values):
     crypto = util.read_private_key(values.private_key_path)
     print crypto.public_key_pem
     return 0