private static byte[] CreateSnPublicKeyBlob(BlobHeader header, RsaPubKey rsa, byte[] pubKeyData) { var snPubKey = new SnPublicKeyBlob() { SigAlgId = AlgorithmId.RsaSign, HashAlgId = AlgorithmId.Sha, PublicKeySize = (UInt32)(s_offsetToKeyData + pubKeyData.Length) }; using (var ms = new MemoryStream(160)) using (var binaryWriter = new BinaryWriter(ms)) { binaryWriter.Write(snPubKey.SigAlgId); binaryWriter.Write(snPubKey.HashAlgId); binaryWriter.Write(snPubKey.PublicKeySize); binaryWriter.Write(header.Type); binaryWriter.Write(header.Version); binaryWriter.Write(header.Reserved); binaryWriter.Write(header.AlgId); binaryWriter.Write(rsa.Magic); binaryWriter.Write(rsa.BitLen); binaryWriter.Write(rsa.PubExp); binaryWriter.Write(pubKeyData); return(ms.ToArray()); } }
private static ImmutableArray<byte> CreateSnPublicKeyBlob(BlobHeader header, RsaPubKey rsa, byte[] pubKeyData) { var snPubKey = new SnPublicKeyBlob() { SigAlgId = AlgorithmId.RsaSign, HashAlgId = AlgorithmId.Sha, PublicKeySize = (UInt32)(s_offsetToKeyData + pubKeyData.Length) }; using (var ms = new MemoryStream(160)) using (var binaryWriter = new BinaryWriter(ms)) { binaryWriter.Write(snPubKey.SigAlgId); binaryWriter.Write(snPubKey.HashAlgId); binaryWriter.Write(snPubKey.PublicKeySize); binaryWriter.Write(header.Type); binaryWriter.Write(header.Version); binaryWriter.Write(header.Reserved); binaryWriter.Write(header.AlgId); binaryWriter.Write(rsa.Magic); binaryWriter.Write(rsa.BitLen); binaryWriter.Write(rsa.PubExp); binaryWriter.Write(pubKeyData); return ms.ToImmutable(); } }