Net.Pkcs11Interop.HighLevelAPI81.Session.Encrypt C# (CSharp) Method

Encrypt() public method

Encrypts single-part data
public Encrypt ( Mechanism mechanism, ObjectHandle keyHandle, byte data ) : byte[]
mechanism Mechanism Encryption mechanism
keyHandle ObjectHandle Handle of the encryption key
data byte Data to be encrypted
return byte[]
        public byte[] Encrypt(Mechanism mechanism, ObjectHandle keyHandle, byte[] data)
        {
            if (this._disposed)
                throw new ObjectDisposedException(this.GetType().FullName);

            if (mechanism == null)
                throw new ArgumentNullException("mechanism");

            if (keyHandle == null)
                throw new ArgumentNullException("keyHandle");

            if (data == null)
                throw new ArgumentNullException("data");

            CK_MECHANISM ckMechanism = mechanism.CkMechanism;

            CKR rv = _p11.C_EncryptInit(_sessionId, ref ckMechanism, keyHandle.ObjectId);
            if (rv != CKR.CKR_OK)
                throw new Pkcs11Exception("C_EncryptInit", rv);

            ulong encryptedDataLen = 0;
            rv = _p11.C_Encrypt(_sessionId, data, Convert.ToUInt64(data.Length), null, ref encryptedDataLen);
            if (rv != CKR.CKR_OK)
                throw new Pkcs11Exception("C_Encrypt", rv);

            byte[] encryptedData = new byte[encryptedDataLen];
            rv = _p11.C_Encrypt(_sessionId, data, Convert.ToUInt64(data.Length), encryptedData, ref encryptedDataLen);
            if (rv != CKR.CKR_OK)
                throw new Pkcs11Exception("C_Encrypt", rv);

            if (encryptedData.Length != Convert.ToInt32(encryptedDataLen))
                Array.Resize(ref encryptedData, Convert.ToInt32(encryptedDataLen));

            return encryptedData;
        }

Same methods

Session::Encrypt ( Mechanism mechanism, ObjectHandle keyHandle, Stream inputStream, Stream outputStream ) : void
Session::Encrypt ( Mechanism mechanism, ObjectHandle keyHandle, Stream inputStream, Stream outputStream, int bufferLength ) : void