public void CTRL(int type, int arg, byte[] ptr, int offset) { if (ptr == null) offset = 0; fixed (byte *p = ptr) { IntPtr ip = new IntPtr(p + offset); if (_CIPHER.EVP_CIPHER_CTX_ctrl(this._handle, type, arg, ip) == 0) throw new EVPException(); } } }