Signing content for apple passbook in c#

后端 未结 3 701
小蘑菇
小蘑菇 2021-01-26 03:24

Here is my code

static void Main(string[] args)
    {
        try
        {
            ContentInfo contentInfo = new ContentInfo(File.ReadAllBytes(@\"D:\\prj\\t         


        
相关标签:
3条回答
  • 2021-01-26 03:55

    For those tearing their hair out after renewing their certificate and finding it doesn't work, you now need to add the 'signed-time' attribute to the signature. Hence:

    var oid = new Oid("1.2.840.113549.1.7.2");
    ContentInfo contentInfo = new ContentInfo(oid, manifest);
    
    var signedCms = new SignedCms(contentInfo, true);
    var signer = new CmsSigner(SubjectIdentifierType.IssuerAndSerialNumber, myX509certificate);
    signer.IncludeOption = X509IncludeOption.EndCertOnly;
    signer.Certificates.Add(appleWwdrCertificate);
    
    // new requirement to add 'signing-date'
    signer.SignedAttributes.Add(new Pkcs9SigningTime(DateTime.Now));
    signedCms.ComputeSignature(signer);
    
    bytes[] signature = signedCms.Encode();
    
    0 讨论(0)
  • 2021-01-26 04:05

    Try loading the Certificates from The Windows Certificate store,

    Below link will provide you a detailed tutorial for Signing of Passes in .net

    http://geekswithblogs.net/MobileLOB/archive/2012/07/30/part-3ndashpassbook-server.aspx

    Hope this helps.. :)

    0 讨论(0)
  • 2021-01-26 04:16

    I've created an OSS library for .Net that handles all of this for you. You just need your own Passbook certificate and the main Apple certificate.

    https://github.com/tomasmcguinness/dotnet-passbook

    0 讨论(0)
提交回复
热议问题