def sign(self, key, data): # type: (Any, bytes) -> bytes # narrow down the key type # https://github.com/aws/aws-dynamodb-encryption-python/issues/66 """Sign ``data`` using loaded ``key``. :param key: Loaded key :param bytes data: Data to sign :returns: Calculated signature :rtype: bytes :raises SigningError: if unable to sign ``data`` with ``key`` """ if hasattr(key, "public_bytes"): raise SigningError('"sign" is not supported by public keys') try: return key.sign(data, self.padding_type(), self.hash_type()) except Exception: message = "Unable to sign data" _LOGGER.exception(message) raise SigningError(message)
def sign(self, key, data): # type: (Any, bytes) -> bytes # TODO: narrow down the key type """Sign ``data`` using loaded ``key``. :param key: Loaded key :type key: TODO: :param bytes data: Data to sign :returns: Calculated signature :rtype: bytes :raises SigningError: if unable to sign ``data`` with ``key`` """ if hasattr(key, 'public_bytes'): raise SigningError('"sign" is not supported by public keys') try: return key.sign(data, self.padding_type(), self.hash_type()) except Exception: message = 'Unable to sign data' _LOGGER.exception(message) raise SigningError(message)
def sign(self, key, data): # type: (bytes, bytes) -> bytes """Sign ``data`` using loaded ``key``. :param bytes key: Loaded key :param bytes data: Data to sign :returns: Calculated signature :rtype: bytes :raises SigningError: if unable to sign ``data`` with ``key`` """ try: signer = self._build_hmac_signer(key) signer.update(data) return signer.finalize() except Exception: message = "Unable to sign data" _LOGGER.exception(message) raise SigningError(message)