@@ -318,9 +318,15 @@ def encrypt(uid2, identity_scope, keys, keyset_id=None, **kwargs):
318318 now = dt .datetime .now (tz = timezone .utc )
319319
320320 ad_token_version = AdvertisingTokenVersion .ADVERTISING_TOKEN_V4
321+ if keys is None :
322+ return EncryptionDataResponse .make_error (EncryptionStatus .NOT_INITIALIZED )
323+ if not keys .valid (now ):
324+ return EncryptionDataResponse .make_error (EncryptionStatus .KEYS_NOT_SYNCED )
321325
322326 key = keys .get_default_keyset_key (now ) if keyset_id is None else keys .get_by_keyset_key (keyset_id , now )
323327 master_key = keys .get_by_keyset_key (keys .get_master_keyset_id (), now )
328+ if master_key is None :
329+ return EncryptionDataResponse .make_error (EncryptionStatus .NOT_AUTHORIZED_FOR_MASTER_KEY )
324330
325331 token_expiry = now + dt .timedelta (days = 30 ) if keys .get_token_expiry_seconds () is None \
326332 else now + dt .timedelta (seconds = int (keys .get_token_expiry_seconds ()))
@@ -334,7 +340,11 @@ def encrypt(uid2, identity_scope, keys, keyset_id=None, **kwargs):
334340 return EncryptionDataResponse .make_error (EncryptionStatus .NOT_AUTHORIZED_FOR_KEY )
335341 if identity_scope is None :
336342 identity_scope = keys .get_identity_scope ()
337- return _encrypt_token (uid2 , identity_scope , master_key , key , site_id , now , token_expiry , ad_token_version )
343+ try :
344+ return _encrypt_token (uid2 , identity_scope , master_key , key , site_id , now , token_expiry , ad_token_version )
345+ except Exception :
346+ return EncryptionDataResponse .make_error (EncryptionStatus .ENCRYPTION_FAILURE )
347+
338348
339349
340350# DEPRECATED, DO NOT CALL
0 commit comments