using System.Collections.Generic;
using System.Security.Cryptography;
using System.Formats.Asn1;
public static void Main()
var payload = CreateAuthenticodeContentInfo("1.3.6.1.4.1.311.2.1.15", "2.16.840.1.101.3.4.2.3", new byte[] { 0x00, 0x01, 0x02, 0x03 });
Console.WriteLine(string.Join(", ", payload.Select(x => $"0x{x:x2}")));
Console.WriteLine(string.Join("", payload.Select(x => x.ToString("x2"))));
private static byte[] CreateAuthenticodeContentInfo(string spcIndirectDataContent_data_type, string spcIndirectDataContent_messageDigest_digestAlgorithm_algorithm, byte[] spcIndirectDataContent_messageDigest_digest)
var writer = new AsnWriter(AsnEncodingRules.BER);
writer.WriteObjectIdentifier(spcIndirectDataContent_data_type);
writer.WriteObjectIdentifier(spcIndirectDataContent_messageDigest_digestAlgorithm_algorithm);
writer.WriteOctetString(spcIndirectDataContent_messageDigest_digest);