public static ArrayList GetProvParam(IntPtr prov, ProvParamEnum param, uint dataLen) { ArrayList al = new ArrayList(); byte[] data = null; uint flags = Const.CRYPT_FIRST; while (true) { data = new byte[dataLen]; bool retVal = Crypto.CryptGetProvParam(prov, (uint)param, data, ref dataLen, flags); ErrCode [] eca = new ErrCode[] { ErrCode.NO_MORE_ITEMS, ErrCode.MORE_DATA }; ErrCode ec = Error.HandleRetVal(retVal, eca); if (!retVal) { if (ec == ErrCode.NO_MORE_ITEMS) { break; } if (ec != ErrCode.MORE_DATA) { break; } } flags = 0; al.Add(data); } return(al); }
public static ArrayList GetProvParam(IntPtr prov, ProvParamEnum param, uint dataLen) { ArrayList al = new ArrayList(); byte[] data = null; uint flags = Const.CRYPT_FIRST; while ( true ) { data = new byte[dataLen]; bool retVal = Crypto.CryptGetProvParam(prov, (uint) param, data, ref dataLen, flags); ErrCode [] eca = new ErrCode[]{ErrCode.NO_MORE_ITEMS, ErrCode.MORE_DATA}; ErrCode ec = Error.HandleRetVal(retVal, eca); if ( !retVal ) { if ( ec == ErrCode.NO_MORE_ITEMS ) break; if ( ec != ErrCode.MORE_DATA ) break; } flags = 0; al.Add(data); } return al; }