################################################################################ # 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)