public byte[] Decrypt(string encryptedData)
 {
     RmsUtil.ThrowIfParameterNull(encryptedData, "encryptedData");
     RmsUtil.ThrowIfStringParameterNullOrEmpty(encryptedData, "encryptedData");
     byte[] result;
     try
     {
         result = this.DecryptTenantsPrivateKey(encryptedData);
     }
     catch (CryptographicException ex)
     {
         string    ski;
         Exception ex2;
         if (RmsUtil.TryExtractDecryptionCertificateSKIFromEncryptedXml(encryptedData, out ski, out ex2))
         {
             throw new PrivateKeyDecryptionFailedException(ex.Message + " " + Strings.RequiredDecryptionCertificate(ski), ex);
         }
         throw new PrivateKeyDecryptionFailedException(ex2.Message, ex2);
     }
     return(result);
 }