26 lines
945 B
Python
26 lines
945 B
Python
################################################################################
|
|
# Copyright 2016 Google Inc.
|
|
#
|
|
# This software is licensed under the terms defined in the Widevine Master
|
|
# License Agreement. For a copy of this agreement, please contact
|
|
# widevine-licensing@google.com.
|
|
################################################################################
|
|
|
|
"""Utility functions for cryptography."""
|
|
|
|
from cryptography.hazmat import backends
|
|
from cryptography.hazmat.primitives import hashes
|
|
from cryptography.hazmat.primitives import serialization
|
|
from cryptography.hazmat.primitives.asymmetric import padding
|
|
|
|
|
|
def VerifySignature(public_key, signature, data):
|
|
hash_algorithm = hashes.SHA1()
|
|
salt_len = 20
|
|
|
|
key = serialization.load_der_public_key(
|
|
public_key, backend=backends.default_backend())
|
|
key.verify(signature, data,
|
|
padding.PSS(padding.MGF1(hash_algorithm), salt_len),
|
|
hash_algorithm)
|