MalwareSourceCode/MSIL/Virus/Win32/E/Virus.Win32.Expiro.w-1f15ee7e9f7da02b6bfb4c5a5e6484eb9fa71b82d3699c54bcc7a31794b4a66d/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: ADE0A079-11DB-4A46-8BDE-D2A592CA8DEA
// Assembly location: C:\Users\Administrateur\Downloads\Virusshare-00001-msil\Virus.Win32.Expiro.w-1f15ee7e9f7da02b6bfb4c5a5e6484eb9fa71b82d3699c54bcc7a31794b4a66d.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();
}
}
}
}