/// <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); }
/// <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; }
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); }
/// <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; }
/// <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); }
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; }
public static IntPtr AcquireContext(string conName, string provName, ProvType provType) { return AcquireContext(conName, provName, provType, ContextFlag.NONE); }
public static IntPtr AcquireContext(string provName, ProvType provType, ContextFlag conFlag) { return AcquireContext(null, provName, provType, conFlag); }
public static IntPtr AcquireContext(ProvType provType) { return AcquireContext(null, null, provType, ContextFlag.NONE); }
/// <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); }
public static void SetProvider(string provName, ProvType provType) { bool retVal = Crypto.CryptSetProvider(provName, (uint) provType); ErrCode ec = Error.HandleRetVal(retVal); }
public static void SetProvider(string provName, ProvType provType) { bool retVal = Crypto.CryptSetProvider(provName, (uint)provType); ErrCode ec = Error.HandleRetVal(retVal); }
/// <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); }
public static IntPtr AcquireContext(string conName, string provName, ProvType provType) { return(AcquireContext(conName, provName, provType, ContextFlag.NONE)); }
public static IntPtr AcquireContext(string provName, ProvType provType, ContextFlag conFlag) { return(AcquireContext(null, provName, provType, conFlag)); }
public static IntPtr AcquireContext(ProvType provType) { return(AcquireContext(null, null, provType, ContextFlag.NONE)); }