/// <summary> /// Creates a string that can be used as FairPlay Policy Option Configuration. /// </summary> /// <param name="appCertificate">FairPlay application certificate.</param> /// <param name="pfxPassword">Password protecting FairPlay application certificate.</param> /// <param name="pfxPasswordKeyId">Id of the key storing the password protecting /// FairPlay application certificate.</param> /// <param name="askId">Id of the FairPlay Aplication Secret key.</param> /// <param name="contentIv">Initialization Vector used for encrypting the content.</param> /// <returns>String that can be used as FairPlay Policy Option Configuration.</returns> public static string CreateSerializedFairPlayOptionConfiguration( X509Certificate2 appCertificate, string pfxPassword, Guid pfxPasswordKeyId, Guid askId, byte[] contentIv) { byte[] certificateBytes = appCertificate.Export(X509ContentType.Pfx, pfxPassword); string certString = Convert.ToBase64String(certificateBytes); string ivString = BitConverter.ToString(contentIv).Replace("-", string.Empty); var config = new FairPlayConfiguration { ASkId = askId, ContentEncryptionIV = ivString, FairPlayPfx = certString, FairPlayPfxPasswordId = pfxPasswordKeyId }; string configuration = JsonConvert.SerializeObject(config); return(configuration); }
/// <summary> /// Creates a string that can be used as FairPlay Policy Option Configuration. /// </summary> /// <param name="appCertificate">FairPlay application certificate.</param> /// <param name="pfxPassword">Password protecting FairPlay application certificate.</param> /// <param name="pfxPasswordKeyId">Id of the key storing the password protecting /// FairPlay application certificate.</param> /// <param name="askId">Id of the FairPlay Aplication Secret key.</param> /// <param name="contentIv">Initialization Vector used for encrypting the content.</param> /// <returns>String that can be used as FairPlay Policy Option Configuration.</returns> public static string CreateSerializedFairPlayOptionConfiguration( X509Certificate2 appCertificate, string pfxPassword, Guid pfxPasswordKeyId, Guid askId, byte[] contentIv) { byte[] certificateBytes = appCertificate.Export(X509ContentType.Pfx, pfxPassword); string certString = Convert.ToBase64String(certificateBytes); string ivString = BitConverter.ToString(contentIv).Replace("-", string.Empty); var config = new FairPlayConfiguration { ASkId = askId, ContentEncryptionIV = ivString, FairPlayPfx = certString, FairPlayPfxPasswordId = pfxPasswordKeyId }; string configuration = JsonConvert.SerializeObject(config); return configuration; }