// Some countries have import limits on crypto strength, but may allow for
// these exemptions if the exemption mechanism is used.

grant {
    // There is no restriction to any algorithms if KeyRecovery is enforced.
    permission javax.crypto.CryptoPermission *, "KeyRecovery"; 

    // There is no restriction to any algorithms if KeyEscrow is enforced.
    permission javax.crypto.CryptoPermission *, "KeyEscrow"; 

    // There is no restriction to any algorithms if KeyWeakening is enforced. 
    permission javax.crypto.CryptoPermission *, "KeyWeakening";
};
