Opc.Ua.Bindings.TcpChannel.Decrypt C# (CSharp) Method

Decrypt() protected method

Decrypts the buffer using asymmetric encryption.
Start and count specify the block of data to be decrypted. The header specifies unencrypted data that must be copied to the output.
protected Decrypt ( ArraySegment dataToDecrypt, ArraySegment headerToCopy, X509Certificate2 receiverCertificate ) : ArraySegment
dataToDecrypt ArraySegment
headerToCopy ArraySegment
receiverCertificate System.Security.Cryptography.X509Certificates.X509Certificate2
return ArraySegment
        protected ArraySegment<byte> Decrypt(
            ArraySegment<byte> dataToDecrypt,
            ArraySegment<byte> headerToCopy,
            X509Certificate2   receiverCertificate)
        {
            switch (SecurityPolicyUri)
            {
                default:
                case SecurityPolicies.None:
                {
                    byte[] decryptedBuffer = BufferManager.TakeBuffer(SendBufferSize, "Decrypt");

                    Array.Copy(headerToCopy.Array, headerToCopy.Offset, decryptedBuffer, 0, headerToCopy.Count);
                    Array.Copy(dataToDecrypt.Array, dataToDecrypt.Offset, decryptedBuffer, headerToCopy.Count, dataToDecrypt.Count);

                    return new ArraySegment<byte>(decryptedBuffer, 0, dataToDecrypt.Count+headerToCopy.Count);
                }
                case SecurityPolicies.Basic256:
                case SecurityPolicies.Basic256Sha256:
                {
                    return Rsa_Decrypt(dataToDecrypt, headerToCopy, receiverCertificate, true);
                }

                case SecurityPolicies.Basic128Rsa15:
                {
                    return Rsa_Decrypt(dataToDecrypt, headerToCopy, receiverCertificate, false);
                }
            }
        }
#endregion

Same methods

TcpChannel::Decrypt ( TcpChannelToken token, ArraySegment dataToDecrypt, bool useClientKeys ) : void