You've already forked linux-packaging-mono
Imported Upstream version 6.6.0.89
Former-commit-id: b39a328747c2f3414dc52e009fb6f0aa80ca2492
This commit is contained in:
parent
cf815e07e0
commit
95fdb59ea6
@@ -115,7 +115,7 @@ namespace Mono.Security.Authenticode {
|
||||
public const string spcIndirectDataContext = "1.3.6.1.4.1.311.2.1.4";
|
||||
|
||||
private byte[] fileblock;
|
||||
private FileStream fs;
|
||||
private Stream fs;
|
||||
private int blockNo;
|
||||
private int blockLength;
|
||||
private int peOffset;
|
||||
@@ -171,6 +171,14 @@ namespace Mono.Security.Authenticode {
|
||||
blockNo = 0;
|
||||
}
|
||||
|
||||
internal void Open (byte[] rawdata)
|
||||
{
|
||||
if (fs != null)
|
||||
Close ();
|
||||
fs = new MemoryStream (rawdata, false);
|
||||
blockNo = 0;
|
||||
}
|
||||
|
||||
internal void Close ()
|
||||
{
|
||||
if (fs != null) {
|
||||
|
||||
@@ -49,6 +49,7 @@ namespace Mono.Security.Authenticode {
|
||||
class AuthenticodeDeformatter : AuthenticodeBase {
|
||||
|
||||
private string filename;
|
||||
private byte[] rawdata;
|
||||
private byte[] hash;
|
||||
private X509CertificateCollection coll;
|
||||
private ASN1 signedHash;
|
||||
@@ -74,17 +75,36 @@ namespace Mono.Security.Authenticode {
|
||||
FileName = fileName;
|
||||
}
|
||||
|
||||
public AuthenticodeDeformatter (byte[] rawData) : this ()
|
||||
{
|
||||
RawData = rawData;
|
||||
}
|
||||
|
||||
public string FileName {
|
||||
get { return filename; }
|
||||
set {
|
||||
Reset ();
|
||||
filename = value;
|
||||
try {
|
||||
CheckSignature (value);
|
||||
}
|
||||
catch (SecurityException) {
|
||||
CheckSignature ();
|
||||
} catch (SecurityException) {
|
||||
throw;
|
||||
} catch {
|
||||
reason = 1;
|
||||
}
|
||||
catch (Exception) {
|
||||
}
|
||||
}
|
||||
|
||||
public byte[] RawData {
|
||||
get { return rawdata; }
|
||||
set {
|
||||
Reset ();
|
||||
rawdata = value;
|
||||
try {
|
||||
CheckSignature ();
|
||||
} catch (SecurityException) {
|
||||
throw;
|
||||
} catch {
|
||||
reason = 1;
|
||||
}
|
||||
}
|
||||
@@ -166,10 +186,13 @@ namespace Mono.Security.Authenticode {
|
||||
get { return signingCertificate; }
|
||||
}
|
||||
|
||||
private bool CheckSignature (string fileName)
|
||||
private bool CheckSignature ()
|
||||
{
|
||||
filename = fileName;
|
||||
Open (filename);
|
||||
if (filename != null) {
|
||||
Open (filename);
|
||||
} else {
|
||||
Open (rawdata);
|
||||
}
|
||||
entry = GetSecurityEntry ();
|
||||
if (entry == null) {
|
||||
// no signature is present
|
||||
@@ -462,6 +485,7 @@ namespace Mono.Security.Authenticode {
|
||||
private void Reset ()
|
||||
{
|
||||
filename = null;
|
||||
rawdata = null;
|
||||
entry = null;
|
||||
hash = null;
|
||||
signedHash = null;
|
||||
|
||||
Reference in New Issue
Block a user