Module ucam_wls.signing

Expand source code
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.asymmetric import padding

class Key:
    def __init__(self, private_key, kid):
        if not isinstance(kid, int):
            raise TypeError("kid must be an integer")
        if not (1 <= kid <= 99999999):
            raise ValueError("kid must be in the range 1 to 99999999")
        self._private_key = private_key
        self._kid = kid

    @property
    def private_key(self):
        return self._private_key

    @property
    def kid(self):
        return self._kid

    def sign(self, response):
        response.kid = self.kid
        response.signature = self.private_key.sign(
            response.message_to_sign.encode(),
            padding.PKCS1v15(),
            hashes.SHA1(),
        )

Classes

class Key (private_key, kid)
Expand source code
class Key:
    def __init__(self, private_key, kid):
        if not isinstance(kid, int):
            raise TypeError("kid must be an integer")
        if not (1 <= kid <= 99999999):
            raise ValueError("kid must be in the range 1 to 99999999")
        self._private_key = private_key
        self._kid = kid

    @property
    def private_key(self):
        return self._private_key

    @property
    def kid(self):
        return self._kid

    def sign(self, response):
        response.kid = self.kid
        response.signature = self.private_key.sign(
            response.message_to_sign.encode(),
            padding.PKCS1v15(),
            hashes.SHA1(),
        )

Instance variables

var kid
Expand source code
@property
def kid(self):
    return self._kid
var private_key
Expand source code
@property
def private_key(self):
    return self._private_key

Methods

def sign(self, response)
Expand source code
def sign(self, response):
    response.kid = self.kid
    response.signature = self.private_key.sign(
        response.message_to_sign.encode(),
        padding.PKCS1v15(),
        hashes.SHA1(),
    )