Configuration for FairPlay Authorization Policy Option. Key Delivery will use these values for generating FairPlay CKC.
Пример #1
0
        /// <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;
        }