本文整理汇总了C#中IX509Selector.Match方法的典型用法代码示例。如果您正苦于以下问题:C# IX509Selector.Match方法的具体用法?C# IX509Selector.Match怎么用?C# IX509Selector.Match使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IX509Selector
的用法示例。
在下文中一共展示了IX509Selector.Match方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetPrivateKey
/// <summary>
/// Gets the private key based on the provided selector.
/// </summary>
/// <returns>The private key on success; otherwise <c>null</c>.</returns>
/// <param name="selector">The search criteria for the private key.</param>
protected override AsymmetricKeyParameter GetPrivateKey (IX509Selector selector)
{
foreach (var signer in keychain.GetAllCmsSigners ()) {
if (selector.Match (signer.Certificate))
return signer.PrivateKey;
}
return null;
}
示例2: GetCertificate
/// <summary>
/// Gets the X.509 certificate based on the selector.
/// </summary>
/// <returns>The certificate on success; otherwise <c>null</c>.</returns>
/// <param name="selector">The search criteria for the certificate.</param>
protected override X509Certificate GetCertificate (IX509Selector selector)
{
foreach (var certificate in keychain.GetCertificates ((CssmKeyUse) 0)) {
if (selector.Match (certificate))
return certificate;
}
return null;
}
示例3: GetCertificate
/// <summary>
/// Gets the X.509 certificate based on the selector.
/// </summary>
/// <returns>The certificate on success; otherwise <c>null</c>.</returns>
/// <param name="selector">The search criteria for the certificate.</param>
protected override X509Certificate GetCertificate (IX509Selector selector)
{
if (selector == null && certificates.Count > 0)
return certificates[0];
foreach (var certificate in certificates) {
if (selector.Match (certificate))
return certificate;
}
return null;
}
示例4: GetPrivateKey
/// <summary>
/// Gets the private key based on the provided selector.
/// </summary>
/// <returns>The private key on success; otherwise <c>null</c>.</returns>
/// <param name="selector">The search criteria for the private key.</param>
protected override AsymmetricKeyParameter GetPrivateKey (IX509Selector selector)
{
foreach (var certificate in certificates) {
AsymmetricKeyParameter key;
if (!keys.TryGetValue (certificate, out key))
continue;
if (selector != null && !selector.Match (certificate))
continue;
return key;
}
return null;
}
示例5: GetMatches
/**
* Return the matches in the collection for the passed in selector.
*
* @param selector the selector to match against.
* @return a possibly empty collection of matching objects.
*/
public ICollection GetMatches(
IX509Selector selector)
{
if (selector == null)
{
return new ArrayList(_local);
}
IList result = new ArrayList();
foreach (object obj in _local)
{
if (selector.Match(obj))
result.Add(obj);
}
return result;
}
示例6: GetMatches
/// <summary>
/// Gets an enumerator of matching X.509 certificates based on the specified selector.
/// </summary>
/// <remarks>
/// Gets an enumerator of matching X.509 certificates based on the specified selector.
/// </remarks>
/// <returns>The matching certificates.</returns>
/// <param name="selector">The match criteria.</param>
public IEnumerable<X509Certificate> GetMatches (IX509Selector selector)
{
foreach (var certificate in certs) {
if (selector == null || selector.Match (certificate))
yield return certificate;
}
yield break;
}
示例7: Find
/// <summary>
/// Finds the certificate records matching the specified selector.
/// </summary>
/// <remarks>
/// Searches the database for certificate records matching the selector, returning all
/// of the matching records populated with the desired fields.
/// </remarks>
/// <returns>The matching certificate records populated with the desired fields.</returns>
/// <param name="selector">The match selector or <c>null</c> to match all certificates.</param>
/// <param name="trustedOnly"><c>true</c> if only trusted certificates should be returned.</param>
/// <param name="fields">The desired fields.</param>
public IEnumerable<X509CertificateRecord> Find (IX509Selector selector, bool trustedOnly, X509CertificateRecordFields fields)
{
using (var command = GetSelectCommand (selector, trustedOnly, false, fields | X509CertificateRecordFields.Certificate)) {
var reader = command.ExecuteReader ();
try {
var parser = new X509CertificateParser ();
var buffer = new byte[4096];
while (reader.Read ()) {
var record = LoadCertificateRecord (reader, parser, ref buffer);
if (selector == null || selector.Match (record.Certificate))
yield return record;
}
} finally {
reader.Close ();
}
}
yield break;
}
示例8: FindPrivateKeys
/// <summary>
/// Finds the private keys matching the specified selector.
/// </summary>
/// <remarks>
/// Searches the database for certificate records matching the selector, returning the
/// private keys for each matching record.
/// </remarks>
/// <returns>The matching certificates.</returns>
/// <param name="selector">The match selector or <c>null</c> to return all private keys.</param>
public IEnumerable<AsymmetricKeyParameter> FindPrivateKeys (IX509Selector selector)
{
using (var command = GetSelectCommand (selector, false, true, PrivateKeyFields)) {
var reader = command.ExecuteReader ();
try {
var parser = new X509CertificateParser ();
var buffer = new byte[4096];
while (reader.Read ()) {
var record = LoadCertificateRecord (reader, parser, ref buffer);
if (selector == null || selector.Match (record.Certificate))
yield return record.PrivateKey;
}
} finally {
reader.Close ();
}
}
yield break;
}
示例9: GetPrivateKey
/// <summary>
/// Gets the private key based on the provided selector.
/// </summary>
/// <remarks>
/// Gets the private key based on the provided selector.
/// </remarks>
/// <returns>The private key on success; otherwise <c>null</c>.</returns>
/// <param name="selector">The search criteria for the private key.</param>
protected override AsymmetricKeyParameter GetPrivateKey (IX509Selector selector)
{
var store = new X509Store (StoreName.My, StoreLocation);
store.Open (OpenFlags.ReadOnly);
try {
foreach (var certificate in store.Certificates) {
if (!certificate.HasPrivateKey)
continue;
var cert = DotNetUtilities.FromX509Certificate (certificate);
if (selector == null || selector.Match (cert)) {
var pair = DotNetUtilities.GetKeyPair (certificate.PrivateKey);
return pair.Private;
}
}
} finally {
store.Close ();
}
return null;
}
示例10: GetCertificate
/// <summary>
/// Gets the X.509 certificate based on the selector.
/// </summary>
/// <remarks>
/// Gets the X.509 certificate based on the selector.
/// </remarks>
/// <returns>The certificate on success; otherwise <c>null</c>.</returns>
/// <param name="selector">The search criteria for the certificate.</param>
protected override Org.BouncyCastle.X509.X509Certificate GetCertificate (IX509Selector selector)
{
var storeNames = new [] { StoreName.My, StoreName.AddressBook, StoreName.TrustedPeople, StoreName.Root };
foreach (var storeName in storeNames) {
var store = new X509Store (storeName, StoreLocation);
store.Open (OpenFlags.ReadOnly);
try {
foreach (var certificate in store.Certificates) {
var cert = DotNetUtilities.FromX509Certificate (certificate);
if (selector == null || selector.Match (cert))
return cert;
}
} finally {
store.Close ();
}
}
return null;
}
示例11: GetCertificate
/// <summary>
/// Gets the X.509 certificate based on the selector.
/// </summary>
/// <returns>The certificate on success; otherwise <c>null</c>.</returns>
/// <param name="selector">The search criteria for the certificate.</param>
protected override X509Certificate GetCertificate(IX509Selector selector)
{
foreach (var certificate in certificates) {
if (selector.Match (certificate))
return certificate;
}
return null;
}
示例12: foreach
/// <summary>
/// Gets a collection of matching X.509 certificates based on the specified selector.
/// </summary>
/// <remarks>
/// Gets a collection of matching X.509 certificates based on the specified selector.
/// </remarks>
/// <returns>The matching certificates.</returns>
/// <param name="selector">The match criteria.</param>
ICollection IX509Store.GetMatches (IX509Selector selector)
{
var matches = new List<X509Certificate> ();
foreach (var certificate in certs) {
if (selector == null || selector.Match (certificate))
matches.Add (certificate);
}
return matches;
}
示例13: FindCertificates
/// <summary>
/// Finds the certificates matching the specified selector.
/// </summary>
/// <remarks>
/// Searches the database for certificates matching the selector, returning all
/// matching certificates.
/// </remarks>
/// <returns>The matching certificates.</returns>
/// <param name="selector">The match selector or <c>null</c> to return all certificates.</param>
public IEnumerable<X509Certificate> FindCertificates (IX509Selector selector)
{
using (var command = GetSelectCommand (selector, false, false, X509CertificateRecordFields.Certificate)) {
var reader = command.ExecuteReader ();
try {
var parser = new X509CertificateParser ();
var buffer = new byte[4096];
while (reader.Read ()) {
var record = LoadCertificateRecord (reader, parser, ref buffer);
if (selector == null || selector.Match (record.Certificate))
yield return record.Certificate;
}
} finally {
#if COREFX
reader.Dispose ();
#else
reader.Close ();
#endif
}
}
yield break;
}
示例14: GetMatches
public ICollection GetMatches(IX509Selector selector)
{
if (selector == null)
{
return win;
}
IList result = new ArrayList();
for (int i = 0; i < win.Count; i++)
{
if (selector.Match(bc[i]))
result.Add(win[i]);
}
return result;
}