scripts
This commit is contained in:
@@ -0,0 +1,115 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.IO;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using Mono.Security.X509;
|
||||
|
||||
namespace Mono.Security.Authenticode
|
||||
{
|
||||
// Token: 0x02000021 RID: 33
|
||||
public class SoftwarePublisherCertificate
|
||||
{
|
||||
// Token: 0x06000162 RID: 354 RVA: 0x000097FC File Offset: 0x000079FC
|
||||
public SoftwarePublisherCertificate()
|
||||
{
|
||||
this.pkcs7 = new PKCS7.SignedData();
|
||||
this.pkcs7.ContentInfo.ContentType = "1.2.840.113549.1.7.1";
|
||||
}
|
||||
|
||||
// Token: 0x06000163 RID: 355 RVA: 0x00009830 File Offset: 0x00007A30
|
||||
public SoftwarePublisherCertificate(byte[] data)
|
||||
: this()
|
||||
{
|
||||
if (data == null)
|
||||
{
|
||||
throw new ArgumentNullException("data");
|
||||
}
|
||||
PKCS7.ContentInfo contentInfo = new PKCS7.ContentInfo(data);
|
||||
if (contentInfo.ContentType != "1.2.840.113549.1.7.2")
|
||||
{
|
||||
throw new ArgumentException(Locale.GetText("Unsupported ContentType"));
|
||||
}
|
||||
this.pkcs7 = new PKCS7.SignedData(contentInfo.Content);
|
||||
}
|
||||
|
||||
// Token: 0x17000050 RID: 80
|
||||
// (get) Token: 0x06000164 RID: 356 RVA: 0x00009894 File Offset: 0x00007A94
|
||||
public X509CertificateCollection Certificates
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.pkcs7.Certificates;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000051 RID: 81
|
||||
// (get) Token: 0x06000165 RID: 357 RVA: 0x000098A4 File Offset: 0x00007AA4
|
||||
public ArrayList Crls
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.pkcs7.Crls;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000166 RID: 358 RVA: 0x000098B4 File Offset: 0x00007AB4
|
||||
public byte[] GetBytes()
|
||||
{
|
||||
PKCS7.ContentInfo contentInfo = new PKCS7.ContentInfo("1.2.840.113549.1.7.2");
|
||||
contentInfo.Content.Add(this.pkcs7.ASN1);
|
||||
return contentInfo.GetBytes();
|
||||
}
|
||||
|
||||
// Token: 0x06000167 RID: 359 RVA: 0x000098EC File Offset: 0x00007AEC
|
||||
public static SoftwarePublisherCertificate CreateFromFile(string filename)
|
||||
{
|
||||
if (filename == null)
|
||||
{
|
||||
throw new ArgumentNullException("filename");
|
||||
}
|
||||
byte[] array = null;
|
||||
using (FileStream fileStream = File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.Read))
|
||||
{
|
||||
array = new byte[fileStream.Length];
|
||||
fileStream.Read(array, 0, array.Length);
|
||||
fileStream.Close();
|
||||
}
|
||||
if (array.Length < 2)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
if (array[0] != 48)
|
||||
{
|
||||
try
|
||||
{
|
||||
array = SoftwarePublisherCertificate.PEM(array);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new CryptographicException("Invalid encoding", ex);
|
||||
}
|
||||
}
|
||||
return new SoftwarePublisherCertificate(array);
|
||||
}
|
||||
|
||||
// Token: 0x06000168 RID: 360 RVA: 0x000099B4 File Offset: 0x00007BB4
|
||||
private static byte[] PEM(byte[] data)
|
||||
{
|
||||
string text = ((data[1] != 0) ? Encoding.ASCII.GetString(data) : Encoding.Unicode.GetString(data));
|
||||
int num = text.IndexOf("-----BEGIN PKCS7-----") + "-----BEGIN PKCS7-----".Length;
|
||||
int num2 = text.IndexOf("-----END PKCS7-----", num);
|
||||
string text2 = ((num != -1 && num2 != -1) ? text.Substring(num, num2 - num) : text);
|
||||
return Convert.FromBase64String(text2);
|
||||
}
|
||||
|
||||
// Token: 0x040000A1 RID: 161
|
||||
private const string header = "-----BEGIN PKCS7-----";
|
||||
|
||||
// Token: 0x040000A2 RID: 162
|
||||
private const string footer = "-----END PKCS7-----";
|
||||
|
||||
// Token: 0x040000A3 RID: 163
|
||||
private PKCS7.SignedData pkcs7;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user