MalwareSourceCode/MSIL/Virus/Win32/E/Virus.Win32.Expiro.w-f8f9f26e940480624825f6bddbea86e70fc4aa746c4dd8efa7d98dcb477000ed/Microsoft/InfoCards/RemoteX509Token.cs

56 lines
1.5 KiB
C#
Raw Normal View History

2022-08-18 11:28:56 +00:00
// Decompiled with JetBrains decompiler
// Type: Microsoft.InfoCards.RemoteX509Token
// Assembly: infocard, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// MVID: 1D4D5564-A025-490C-AF1D-DF4FBB709D1F
// Assembly location: C:\Users\Administrateur\Downloads\Virusshare-00001-msil\Virus.Win32.Expiro.w-f8f9f26e940480624825f6bddbea86e70fc4aa746c4dd8efa7d98dcb477000ed.exe
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IdentityModel.Tokens;
using System.Security.Cryptography.X509Certificates;
namespace Microsoft.InfoCards
{
internal class RemoteX509Token : X509SecurityToken
{
private List<SecurityKey> m_keys;
private object m_sync;
private bool m_disposed;
public RemoteX509Token(X509Certificate2 cert)
: base(cert)
{
this.m_keys = new List<SecurityKey>(1);
this.m_keys.Add((SecurityKey) new RemoteX509AsymmetricSecurityKey(cert));
this.m_sync = new object();
}
public override ReadOnlyCollection<SecurityKey> SecurityKeys => this.m_keys.AsReadOnly();
public override void Dispose()
{
try
{
if (this.m_disposed)
return;
lock (this.m_sync)
{
if (this.m_disposed)
return;
this.m_disposed = true;
foreach (SecurityKey key in this.m_keys)
{
if (key is IDisposable disposable)
disposable.Dispose();
}
}
}
finally
{
base.Dispose();
}
}
}
}