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

GetMaxSenderCertificateSize() private method

private GetMaxSenderCertificateSize ( X509Certificate2 senderCertificate, string securityPolicyUri ) : int
senderCertificate System.Security.Cryptography.X509Certificates.X509Certificate2
securityPolicyUri string
return int
        private int GetMaxSenderCertificateSize(X509Certificate2 senderCertificate, string securityPolicyUri)
        {
            int occupiedSize = TcpMessageLimits.BaseHeaderSize //base header size
                + TcpMessageLimits.StringLengthSize;           //security policy uri length

            if (securityPolicyUri != null)
            {
                occupiedSize += new UTF8Encoding().GetByteCount(securityPolicyUri);   //security policy uri size
            }

            occupiedSize += TcpMessageLimits.StringLengthSize; //SenderCertificateLength
            occupiedSize += TcpMessageLimits.StringLengthSize; //ReceiverCertificateThumbprintLength

            occupiedSize += TcpMessageLimits.CertificateThumbprintSize; //ReceiverCertificateThumbprint

            occupiedSize += TcpMessageLimits.SequenceHeaderSize; //SequenceHeader size
            occupiedSize += TcpMessageLimits.MinBodySize;        //Minimum body size

            occupiedSize += GetAsymmetricSignatureSize(senderCertificate);

            return SendBufferSize - occupiedSize;
        }