/// <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); }
/// <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); }
/// <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); }