Esempio n. 1
0
        public MonoBtlsX509Lookup AddLookup(MonoBtlsX509LookupType type)
        {
            if (lookupHash == null)
            {
                lookupHash = new Dictionary <IntPtr, MonoBtlsX509Lookup> ();
            }

            /*
             * X509_STORE_add_lookup() returns the same 'X509_LOOKUP *' for each
             * unique 'X509_LOOKUP_METHOD *' (which is supposed to be a static struct)
             * and we want to use the same managed object for each unique 'X509_LOOKUP *'.
             */
            var lookup       = new MonoBtlsX509Lookup(this, type);
            var nativeLookup = lookup.GetNativeLookup();

            if (lookupHash.ContainsKey(nativeLookup))
            {
                lookup.Dispose();
                lookup = lookupHash [nativeLookup];
            }
            else
            {
                lookupHash.Add(nativeLookup, lookup);
            }

            return(lookup);
        }
		public MonoBtlsX509Lookup AddLookup (MonoBtlsX509LookupType type)
		{
			if (lookupHash == null)
				lookupHash = new Dictionary<IntPtr,MonoBtlsX509Lookup> ();

			/*
			 * X509_STORE_add_lookup() returns the same 'X509_LOOKUP *' for each
			 * unique 'X509_LOOKUP_METHOD *' (which is supposed to be a static struct)
			 * and we want to use the same managed object for each unique 'X509_LOOKUP *'.
			*/
			var lookup = new MonoBtlsX509Lookup (this, type);
			var nativeLookup = lookup.GetNativeLookup ();
			if (lookupHash.ContainsKey (nativeLookup)) {
				lookup.Dispose ();
				lookup = lookupHash [nativeLookup];
			} else {
				lookupHash.Add (nativeLookup, lookup);
			}

			return lookup;
		}