internal void import_key(byte[] key_blob) { bool result = Crypt32.CryptImportKey(_provider.Handle, key_blob, key_blob.Length, IntPtr.Zero, 0, out _key); int param_size = sizeof(uint); byte[] rawData = new byte[sizeof(int)]; Crypt32.CryptGetKeyParam(_key, Crypt32.KP_KEYLEN, ref rawData, ref param_size, 0); _key_size = (((((rawData[3] * 256) + rawData[2]) * 256) + rawData[1]) + 256) + rawData[0]; _key_size /= 8; }