Beispiel #1
0
 /// <summary>
 /// works by calling EnumProviders. otherwise INVALID_PARAMETER
 /// </summary>
 public static ProvType [] EnumProviderTypes()
 {
     uint []         ia;
     ProviderInfo [] providers = EnumProviders(out ia);
     ProvType []     pta       = new ProvType[ia.Length];
     for (int i = 0; i < ia.Length; i++)
     {
         pta[i] = (ProvType)ia[i];
     }
     return(pta);
 }
Beispiel #2
0
 /// <summary>
 /// works by calling EnumProviders. otherwise INVALID_PARAMETER
 /// </summary>
 public static ProvType[] EnumProviderTypes()
 {
     uint [] ia;
     ProviderInfo [] providers = EnumProviders(out ia);
     ProvType [] pta = new ProvType[ia.Length];
     for(int i=0; i<ia.Length; i++)
     {
         pta[i] = (ProvType) ia[i];
     }
     return pta;
 }
Beispiel #3
0
        public static IntPtr AcquireContext(string conName, string provName, ProvType provType, ContextFlag conFlag)
        {
            IntPtr  hProv;
            bool    retVal = Crypto.CryptAcquireContext(out hProv, conName, provName, (uint)provType, (uint)conFlag);
            ErrCode ec     = Error.HandleRetVal(retVal, ErrCode.NTE_BAD_KEYSET);

            if (ec == ErrCode.NTE_BAD_KEYSET)            //try creating a new key container
            {
                retVal = Crypto.CryptAcquireContext(out hProv, conName, provName, (uint)provType, (uint)ContextFlag.NEWKEYSET);
                ec     = Error.HandleRetVal(retVal);
            }
            if (hProv == IntPtr.Zero)
            {
                throw new Exception("bNb.Sec: " + ec.ToString());
            }
            return(hProv);
        }
Beispiel #4
0
 /// <summary>
 /// INVALID_PARAMETER. call Context.AcquireContext with minimal values instead
 /// </summary>
 public static string GetDefaultProvider(ProvType provType, ProvDefaultFlag provDefFlag)
 {
     uint reserved = 0;
     uint flags = (uint) provDefFlag;
     uint dataLen = 0;
     StringBuilder provName = new StringBuilder();
     bool retVal = Crypto.CryptGetDefaultProvider((uint)provType, ref reserved, flags, provName, ref dataLen);
     ErrCode ec = Error.HandleRetVal(retVal, ErrCode.MORE_DATA);
     if(ec == ErrCode.MORE_DATA)
     {
         provName = new StringBuilder((int)dataLen);
         retVal = Crypto.CryptGetDefaultProvider((uint)provType, ref reserved, flags, provName, ref dataLen);
         ec = Error.HandleRetVal(retVal);
     }
     string name = provName.ToString();
     if(name == null || name == String.Empty)
         throw new Exception(ec.ToString());
     return name;
 }
Beispiel #5
0
        /// <summary>
        /// INVALID_PARAMETER. call Context.AcquireContext with minimal values instead
        /// </summary>
        public static string GetDefaultProvider(ProvType provType, ProvDefaultFlag provDefFlag)
        {
            uint          reserved = 0;
            uint          flags    = (uint)provDefFlag;
            uint          dataLen  = 0;
            StringBuilder provName = new StringBuilder();
            bool          retVal   = Crypto.CryptGetDefaultProvider((uint)provType, ref reserved, flags, provName, ref dataLen);
            ErrCode       ec       = Error.HandleRetVal(retVal, ErrCode.MORE_DATA);

            if (ec == ErrCode.MORE_DATA)
            {
                provName = new StringBuilder((int)dataLen);
                retVal   = Crypto.CryptGetDefaultProvider((uint)provType, ref reserved, flags, provName, ref dataLen);
                ec       = Error.HandleRetVal(retVal);
            }
            string name = provName.ToString();

            if (name == null || name == String.Empty)
            {
                throw new Exception(ec.ToString());
            }
            return(name);
        }
Beispiel #6
0
 public static IntPtr AcquireContext(string conName, string provName, ProvType provType, ContextFlag conFlag)
 {
     IntPtr hProv;
     bool retVal = Crypto.CryptAcquireContext(out hProv, conName, provName, (uint) provType, (uint) conFlag);
     ErrCode ec = Error.HandleRetVal(retVal, ErrCode.NTE_BAD_KEYSET);
     if(ec == ErrCode.NTE_BAD_KEYSET) //try creating a new key container
     {
         retVal = Crypto.CryptAcquireContext(out hProv, conName, provName, (uint) provType, (uint) ContextFlag.NEWKEYSET);
         ec = Error.HandleRetVal(retVal);
     }
     if(hProv == IntPtr.Zero)
         throw new Exception("bNb.Sec: " + ec.ToString());
     return hProv;
 }
Beispiel #7
0
 public static IntPtr AcquireContext(string conName, string provName, ProvType provType)
 {
     return AcquireContext(conName, provName, provType, ContextFlag.NONE);
 }
Beispiel #8
0
 public static IntPtr AcquireContext(string provName, ProvType provType, ContextFlag conFlag)
 {
     return AcquireContext(null, provName, provType, conFlag);
 }
Beispiel #9
0
 public static IntPtr AcquireContext(ProvType provType)
 {
     return AcquireContext(null, null, provType, ContextFlag.NONE);
 }
Beispiel #10
0
 /// <summary>
 /// INVALID_PARAMETER. call SetProvider instead
 /// </summary>
 public static void SetProviderEx(string provName, ProvType provType, ProvDefaultFlag provDefFlag)
 {
     uint reserved = 0;
     bool retVal = Crypto.CryptSetProviderEx(provName, (uint) provType, ref reserved, (uint) provDefFlag);
     ErrCode ec = Error.HandleRetVal(retVal);
 }
Beispiel #11
0
 public static void SetProvider(string provName, ProvType provType)
 {
     bool retVal = Crypto.CryptSetProvider(provName, (uint) provType);
     ErrCode ec = Error.HandleRetVal(retVal);
 }
Beispiel #12
0
 public static void SetProvider(string provName, ProvType provType)
 {
     bool    retVal = Crypto.CryptSetProvider(provName, (uint)provType);
     ErrCode ec     = Error.HandleRetVal(retVal);
 }
Beispiel #13
0
 /// <summary>
 /// INVALID_PARAMETER. call SetProvider instead
 /// </summary>
 public static void SetProviderEx(string provName, ProvType provType, ProvDefaultFlag provDefFlag)
 {
     uint    reserved = 0;
     bool    retVal   = Crypto.CryptSetProviderEx(provName, (uint)provType, ref reserved, (uint)provDefFlag);
     ErrCode ec       = Error.HandleRetVal(retVal);
 }
Beispiel #14
0
 public static IntPtr AcquireContext(string conName, string provName, ProvType provType)
 {
     return(AcquireContext(conName, provName, provType, ContextFlag.NONE));
 }
Beispiel #15
0
 public static IntPtr AcquireContext(string provName, ProvType provType, ContextFlag conFlag)
 {
     return(AcquireContext(null, provName, provType, conFlag));
 }
Beispiel #16
0
 public static IntPtr AcquireContext(ProvType provType)
 {
     return(AcquireContext(null, null, provType, ContextFlag.NONE));
 }