/// <summary>
        /// GetPublicKeyBytes
        /// </summary>
        /// <param name="publicText">The certificate or public key text.</param>
        /// <returns>byte array</returns>
        protected byte[] GetPublicKeyBytes([NotNull] string publicText)
        {
            if (publicText == null)
            {
                throw new ArgumentNullException(nameof(publicText));
            }

            string text = publicText.Trim();

            if (text.StartsWith(PublicKeyHeader) && text.EndsWith(PublicKeyFooter))
            {
                return(TextUtil.ExtractBytes(text, PublicKeyHeader, PublicKeyFooter));
            }

            if (text.StartsWith(PublicCertificateHeader) && text.EndsWith(PublicCertificateFooter))
            {
                return(TextUtil.ExtractBytes(text, PublicCertificateHeader, PublicCertificateFooter));
            }

            throw new NotSupportedException();
        }