<?xml version="1.0"?>
<doc>
    <assembly>
        <name>EU.CqrXs</name>
    </assembly>
    <members>
        <member name="T:EU.CqrXs.Crypt.CException">
            <summary>
            CException a generic app level Exception derived from <see cref="T:System.ApplicationException"/>
            provides a <see cref="P:EU.CqrXs.Crypt.CException.LastException"/> chain list to the root of first runtime exception
            <see cref="T:System.DateTime"/> <see cref="P:EU.CqrXs.Crypt.CException.TimeStampException"/>, when the Exception was thrown
            <see cref="P:EU.CqrXs.Crypt.CException.LastException"/> a property, that stores the Exception in <see cref="M:System.AppDomain.SetData(System.String,System.Object)"/> on set
            and getss the last Exception during starting this instance via <see cref="M:System.AppDomain.GetData(System.String)" />
            For root first Exception <see cref="P:EU.CqrXs.Crypt.CException.LastException"/> is always <see cref="T:null"/>
            </summary>
        </member>
        <member name="T:EU.CqrXs.Crypt.Cipher.Asymmetric.DH">
            <summary>
            Diffie Hellman key exchange
            </summary>
        </member>
        <member name="T:EU.CqrXs.Crypt.Cipher.Asymmetric.Rsa">
            <summary>
            Rsa Asymmetric cipher 
            see https://github.dev/Ulterius/server/blob/770d1821de43cf1d0a93c79025995bdd812a76ee/RemoteTaskServer/Utilities/Security/Rsa.cs#L71#L87
            https://github.dev/ThePBone/GalaxyBudsClient/blob/a06eff7713fde924466ae1a214571a2b6f0d1a42/GalaxyBudsClient/Utils/EncryptionUtils.cs#L18#L34
            https://github.dev/Ulterius/server/blob/770d1821de43cf1d0a93c79025995bdd812a76ee/RemoteTaskServer/Utilities/Security/Rsa.cs#L71#L87
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Asymmetric.Rsa.GenerateNewRsaKeyPair">
            <summary>
            GenerateNewRsaKeyPair - generates a new rsa key pair
            </summary>
            <returns><see cref="T:Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair"/></returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Asymmetric.Rsa.GetRsaKeyPair(System.String,System.String)">
            <summary>
            Get Rsa Key Pair by private and public key
            </summary>
            <param name="pubKey"></param>
            <param name="privKey"></param>
            <returns><see cref="T:Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair"/></returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Asymmetric.Rsa.Encrypt(System.Byte[],Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair)">
            <summary>
            Rsa encrypt bytes with public key
            </summary>
            <param name="bytesToEncrypt"><see cref="T:byte[]">bytes to encrypt</see></param>
            <param name="pair"></param>
            <returns>encrypted <see cref="T:yte[]"/></returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Asymmetric.Rsa.Decrypt(System.Byte[],Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair)">
            <summary>
            Rsa Decrypt
            </summary>
            <param name="bytesToDecrypt"></param>
            <param name="pair"></param>
            <returns></returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Asymmetric.Rsa.EncryptString(System.String,System.Boolean)">
            <summary>
            Encrypts a string
            </summary>
            <param name="inPlainString">plain text string</param>
            <param name="isPublic">true, if it's public key, false if it's private key</param>
            <returns>Base64 encoded encrypted byte[]</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Asymmetric.Rsa.DecryptString(System.String,System.Boolean)">
            <summary>
            Decrypts a string, that is truely a base64 encoded encrypted byte[]
            </summary>
            <param name="inCryptString">base64 encoded string from encrypted byte[]</param>
            <param name="isPublic">true, if it's public key, false if it's private key</param>
            <returns>plain text string (decrypted)</returns>
        </member>
        <member name="T:EU.CqrXs.Crypt.Cipher.CipherMode2">
            <summary>
            CipherMode2 enumeration type for more cipher mode as found in standard <see cref="T:System.Security.Cryptography.CipherMode"/>
            </summary>
            <remarks>
            <list type="bullet">
            <listheader>code changes</listheader>
            <item>
            2026-02-11 alert-fix-13 changed mode from "ECB" to "CFB"     
            Reason: Git security scans
            consequences: no more fully deterministic math bijective proper symmertric cipher en-/decryption in pipe
            fixed attacks: not so easy REPLY attacks with binary format header and heuristic key collection
            </item>
            <item>
            2026-mm-dd [enter pull request name here] [enter what you did here]
            Reason: [enter a senseful reason]
            consequences: [describe most impactful consequences of bugfix or code change request]
            fixed [vulnerability, code smell]: [Describe understandable precise in 1-2 setences]
            </item>
            </list>
            </remarks>
        </member>
        <member name="T:EU.CqrXs.Crypt.Cipher.CiffreMode">
            <summary>
            <see cref="T:System.Security.Cryptography.CipherMode"/>
            </summary>
        </member>
        <member name="T:EU.CqrXs.Crypt.Cipher.CipherModeExtensions">
            <summary>
            Extension methods for <see cref="T:EU.CqrXs.Crypt.Cipher.CipherMode2">enum CipherMode2</see>
            </summary>
            <remarks>
            <list type="bullet">
            <listheader>code changes</listheader>
            <item>
            2026-02-11 alert-fix-13 changed mode from "ECB" to "CFB"     
            Reason: Git security scans
            consequences: no more fully deterministic math bijective proper symmertric cipher en-/decryption in pipe
            fixed attacks: not so easy REPLY attacks with binary format header and heuristic key collection
            </item>
            <item>
            2026-mm-dd [enter pull request name here] [enter what you did here]
            Reason: [enter a senseful reason]
            consequences: [describe most impactful consequences of bugfix or code change request]
            fixed [vulnerability, code smell]: [Describe understandable precise in 1-2 setences]
            </item>
            </list>
            </remarks>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CipherModeExtensions.ParseText(System.String)">
            <summary>
            parses pipe semicolon separated pipe string to CipherList
            </summary>
            <param name="text">semicolon separated pipe string to CipherList </param>
            <returns><see cref="T:CipherMode"/> array of ciphers for the pipe</returns>
        </member>
        <member name="T:EU.CqrXs.Crypt.Cipher.CipherEnum">
            <summary>
            CipherEnum maps BlockCipher algorithms <see cref="T:Org.BouncyCastle.Crypto.IBlockCipher"/>
            </summary>
        </member>
        <member name="T:EU.CqrXs.Crypt.Cipher.CipherEnumExtensions">
            <summary>
            Extensions methods for <see cref="T:EU.CqrXs.Crypt.Cipher.CipherEnum"/>
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CipherEnumExtensions.GetCipherChar(EU.CqrXs.Crypt.Cipher.CipherEnum)">
            <summary>
            Extensions method for Enum <see cref="T:EU.CqrXs.Crypt.Cipher.CipherEnum"/>
            gets a character for each Cipher Algorithm, that is used here
            </summary>
            <param name="cipher">this <see cref="T:EU.CqrXs.Crypt.Cipher.CipherEnum"/> extension</param>
            <returns>a <see cref="T:System.Char"/>, that is a short name for the encryption</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CipherEnumExtensions.ParsePipeText(System.String)">
            <summary>
            parses pipe semicolon separated pipe string to CipherList
            </summary>
            <param name="pipeText">semicolon separated pipe string to CipherList </param>
            <returns><see cref="T:CipherEnum[]"/> array of ciphers for the pipe</returns>
        </member>
        <member name="T:EU.CqrXs.Crypt.Cipher.CipherPipe">
            <summary>
            Provides a simple crypt pipe for <see cref="T:EU.CqrXs.Crypt.Cipher.CipherEnum"/>
            </summary>
            <remarks>
            <list type="bullet">
            <listheader>code changes</listheader>
            <item>
            2026-02-11 alert-fix-13 changed mode from "ECB" to "CFB"     
            Reason: Git security scans
            consequences: no more fully deterministic math bijective proper symmertric cipher en-/decryption in pipe
            fixed attacks: not so easy REPLY attacks with binary format header and heuristic key collection
            </item>
            <item>
            2026-mm-dd [enter pull request name here] [enter what you did here]
            Reason: [enter a senseful reason]
            consequences: [describe most impactful consequences of bugfix or code change request]
            fixed [vulnerability, code smell]: [Describe understandable precise in 1-2 setences]
            </item>
            </list>
            </remarks>
        </member>
        <member name="P:EU.CqrXs.Crypt.Cipher.CipherPipe.ZType">
            <summary>
            ZType is current <see cref="T:EU.CqrXs.Zip.ZipType"/>
            </summary>
        </member>
        <member name="P:EU.CqrXs.Crypt.Cipher.CipherPipe.EncodeType">
            <summary>
            Current <see cref="P:EU.CqrXs.Crypt.Cipher.CipherPipe.EncodeType"/> 
            </summary>
        </member>
        <member name="P:EU.CqrXs.Crypt.Cipher.CipherPipe.KHash">
            <summary>
            KHash is <see cref="T:EU.CqrXs.Crypt.Hash.KeyHash"/>
            </summary>
        </member>
        <member name="P:EU.CqrXs.Crypt.Cipher.CipherPipe.InPipe">
            <summary>
            InPipe is current encryption pipe
            </summary>
        </member>
        <member name="P:EU.CqrXs.Crypt.Cipher.CipherPipe.OutPipe">
            <summary>
            OutPipe will always be generated from <see cref="P:EU.CqrXs.Crypt.Cipher.CipherPipe.InPipe"/>
            </summary>
        </member>
        <member name="P:EU.CqrXs.Crypt.Cipher.CipherPipe.PipeString">
            <summary>
            PipeString will always be generated on the fly from <see cref="P:EU.CqrXs.Crypt.Cipher.CipherPipe.InPipe"/>
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CipherPipe.#ctor">
            <summary>
            parameterless default constructor for <see cref="T:EU.CqrXs.Crypt.Cipher.CipherPipe"/>
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CipherPipe.#ctor(EU.CqrXs.Crypt.Cipher.CipherEnum[],System.UInt32,EU.CqrXs.Crypt.EnDeCoding.EncodingType,EU.CqrXs.Zip.ZipType,EU.CqrXs.Crypt.Hash.KeyHash,EU.CqrXs.Crypt.Cipher.CipherMode2)">
            <summary>
            CipherPipe constructor with an array of <see cref="T:CipherEnum[]"/> as inpipe
            </summary>
            <param name="cipherEnums">array of <see cref="T:CipherEnum[]"/> as inpipe</param>
            <param name="maxpipe">size of max. pipe stages, can't be greater than 8</param>
            <param name="encType"><see cref="P:EU.CqrXs.Crypt.Cipher.CipherPipe.EncodeType"/></param>
            <param name="zpType"><see cref="T:EU.CqrXs.Zip.ZipType"/></param>
            <param name="kh"><see cref="T:EU.CqrXs.Crypt.Hash.KeyHash"/></param>
            <param name="cmode2"><see cref="T:EU.CqrXs.Crypt.Cipher.CipherMode2"/></param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CipherPipe.#ctor(System.String[],System.UInt32,EU.CqrXs.Crypt.EnDeCoding.EncodingType,EU.CqrXs.Zip.ZipType,EU.CqrXs.Crypt.Hash.KeyHash,EU.CqrXs.Crypt.Cipher.CipherMode2)">
            <summary>
            CipherPipe constructor with an array of <see cref="T:string[]"/> cipherAlgos as inpipe
            </summary>
            <param name="cipherAlgos">array of <see cref="T:string[]"/> as inpipe</param>
            <param name="maxpipe">maximum lentgh <see cref="F:EU.CqrXs.Util.Constants.MAX_PIPE_LEN"/></param>
            <param name="encType"><see cref="P:EU.CqrXs.Crypt.Cipher.CipherPipe.EncodeType"/></param>
            <param name="zpType"><see cref="T:EU.CqrXs.Zip.ZipType"/></param>
            <param name="kh"><see cref="T:EU.CqrXs.Crypt.Hash.KeyHash"/></param>
            <param name="cmode2"><see cref="T:EU.CqrXs.Crypt.Cipher.CipherMode2"/></param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CipherPipe.#ctor(System.Byte[],System.UInt32,EU.CqrXs.Crypt.EnDeCoding.EncodingType,EU.CqrXs.Zip.ZipType,EU.CqrXs.Crypt.Hash.KeyHash,EU.CqrXs.Crypt.Cipher.CipherMode2,System.Boolean)">
            <summary>
            CipherPipe ctor with array of user key bytes
            </summary>
            <param name="keyBytes">user key bytes</param>
            <param name="maxpipe">maximum lentgh <see cref="F:EU.CqrXs.Util.Constants.MAX_PIPE_LEN"/></param>
            <param name="encType"><see cref="P:EU.CqrXs.Crypt.Cipher.CipherPipe.EncodeType"/></param>
            <param name="zpType"><see cref="T:EU.CqrXs.Zip.ZipType"/></param>
            <param name="kh"><see cref="T:EU.CqrXs.Crypt.Hash.KeyHash"/></param>
            <param name="cmode2"><see cref="T:EU.CqrXs.Crypt.Cipher.CipherMode2"/></param>
            <param name="verbose"></param>
            <exception cref="T:System.ArgumentException"></exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CipherPipe.#ctor(System.String,System.String,EU.CqrXs.Crypt.EnDeCoding.EncodingType,EU.CqrXs.Zip.ZipType,EU.CqrXs.Crypt.Hash.KeyHash,EU.CqrXs.Crypt.Cipher.CipherMode2,System.Boolean)">
            <summary>
            Constructs a <see cref="T:EU.CqrXs.Crypt.Cipher.CipherPipe"/> from key and hash
            by getting <see cref="T:byte[]">byte[] keybytes</see> with <see cref="M:EU.CqrXs.Crypt.Cipher.CryptHelper.GetUserKeyBytes(System.String,System.String,System.Int32)"/>
            </summary>
            <param name="key">secret key to generate pipe</param>
            <param name="hash">hash value of secret key</param>
            <param name="encType"></param>
            <param name="zpType"></param>
            <param name="kh"></param>
            <param name="cmode2"><see cref="T:EU.CqrXs.Crypt.Cipher.CipherMode2"/></param>
            <param name="verbose"></param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CipherPipe.#ctor(System.String,System.Boolean)">
            <summary>
            CipherPipe ctor with only key
            </summary>
            <param name="key"></param>
            <param name="verbose"></param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CipherPipe.ToJson">
            <summary>
            ToJson 
            </summary>
            <returns>serialized string</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CipherPipe.FromJson(System.String)">
            <summary>
            FromJson
            </summary>
            <param name="json">serialized json</param>
            <returns><see cref="T:EU.CqrXs.Crypt.Cipher.CipherPipe"/></returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CipherPipe.EncryptBytesFast(System.Byte[],EU.CqrXs.Crypt.Cipher.CipherEnum,System.String,System.String,EU.CqrXs.Crypt.Cipher.CipherMode2)">
            <summary>
            Generic encrypt bytes to bytes
            </summary>
            <param name="inBytes">Array of byte</param>
            <param name="cipherAlgo"><see cref="T:EU.CqrXs.Crypt.Cipher.CipherEnum"/> both symmetric and asymetric cipher algorithms</param>
            <param name="secretKey">secret key to decrypt</param>
            <param name="hash">key's hash</param>
            <param name="cmode2"></param>
            <returns>encrypted byte Array</returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CipherPipe.DecryptBytesFast(System.Byte[],EU.CqrXs.Crypt.Cipher.CipherEnum,System.String,System.String,EU.CqrXs.Crypt.Cipher.CipherMode2)">
            <summary>
            Generic decrypt bytes to bytes
            </summary>
            <param name="cipherBytes">Encrypted array of byte</param>
            <param name="cipherAlgo"><see cref="T:EU.CqrXs.Crypt.Cipher.CipherEnum"/>both symmetric and asymetric cipher algorithms</param>
            <param name="secretKey">secret key to decrypt</param>
            <param name="hash">key's hash</param>
            <returns>decrypted byte Array</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CipherPipe.EncrpytT``2(``1,System.String,System.String,EU.CqrXs.Crypt.EnDeCoding.EncodingType,EU.CqrXs.Zip.ZipType,EU.CqrXs.Crypt.Hash.KeyHash,EU.CqrXs.Crypt.Cipher.CipherMode2)">
            <summary>
            EncrpytT
            </summary>
            <typeparam name="TRet">
                <see cref="T:string"/>
                <see cref="T:char[]"/>  <see cref="T:IEnumerable{char}"/>
                <see cref="T:bytes[]"/> <see cref="T:IEnumerable{byte}"/>
            </typeparam>
            <typeparam name="TIn">
                <see cref="T:string"/>
                <see cref="T:char[]"/>  <see cref="T:IEnumerable{char}"/>
                <see cref="T:bytes[]"/> <see cref="T:IEnumerable{byte}"/>
            </typeparam>
            <param name="tinSource">plain string, char[], byte[], IEnumerable{char}, IEnumerable{bytes}</param>
            <param name="cryptKey">Unique deterministic key for either generating the mix of symmetric cipher algorithms in the crypt pipeline 
            and unique crypt key for each symmetric cipher algorithm in each stage of the pipe</param>
            <param name="hashIv">hashed key Iv</param>
            <param name="encoding"><see cref="T:EU.CqrXs.Crypt.EnDeCoding.EncodingType"/> type for encoding encrypted bytes back in plain text></param>
            <param name="zipBefore">Zip bytes with <see cref="T:EU.CqrXs.Zip.ZipType"/> before passing them in encrypted stage pipeline. <see cref="M:EU.CqrXs.Zip.ZipTypeExtensions.Zip(EU.CqrXs.Zip.ZipType,System.Byte[])"/></param>
            <param name="kayHash"><see cref="T:EU.CqrXs.Crypt.Hash.KeyHash"/> hashing key algorithm</param>
            <param name="cmode2"></param>
            <returns>encrypted generic type</returns>
            <exception cref="T:EU.CqrXs.Crypt.CException">is thrown on unknown type</exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CipherPipe.DecrpytT``2(``1,System.String,System.String,EU.CqrXs.Crypt.EnDeCoding.EncodingType,EU.CqrXs.Zip.ZipType,EU.CqrXs.Crypt.Hash.KeyHash,EU.CqrXs.Crypt.Cipher.CipherMode2)">
            <summary>
             DecrpytT generic decryption method
            </summary>
            <typeparam name="TRet">return type 
                <see cref="T:string"/>
                <see cref="T:char[]"/>  <see cref="T:IEnumerable{char}"/>
                <see cref="T:bytes[]"/> <see cref="T:IEnumerable{byte}"/>
            </typeparam>
            <typeparam name="TIn"></typeparam>
            <param name="tinSource">encrypted message</param>
            <param name="cryptKey">Unique deterministic key for either generating the mix of symmetric cipher algorithms in the crypt pipeline 
            and unique crypt key for each symmetric cipher algorithm in each stage of the pipe</param>
            <param name="decoding"><see cref="T:EU.CqrXs.Crypt.EnDeCoding.EncodingType"/> type for encoding encrypted bytes back in plain text></param>
            <param name="unzipAfter"><see cref="T:EU.CqrXs.Zip.ZipType"/> and <see cref="M:EU.CqrXs.Zip.ZipTypeExtensions.Unzip(EU.CqrXs.Zip.ZipType,System.Byte[])"/></param>
            <param name="keyHash"><see cref="T:EU.CqrXs.Crypt.Hash.KeyHash"/> hashing key algorithm</param>
            <param name="mode2"></param>
            <returns>Decrypted generic TRet</returns>
            <exception cref="T:EU.CqrXs.Crypt.CException">is thrown on unknown type</exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CipherPipe.MerryGoRoundEncrpyt(System.Byte[],System.String,System.String,EU.CqrXs.Crypt.Cipher.CipherMode2)">
            <summary>
            MerryGoRoundEncrpyt starts merry to go arround from left to right in clock hour cycle
            </summary>
            <param name="inBytes">plain <see cref="T:byte[]"/> to encrypt</param>
            <param name="secretKey">user secret key to use for all symmetric cipher algorithms in the pipe</param>
            <param name="hashIv">hash key iv relational to secret key</param>
            <param name="cmode2"><see cref="T:EU.CqrXs.Crypt.Cipher.CipherMode2"/></param>
            <returns>encrypted byte[]</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CipherPipe.DecrpytRoundGoMerry(System.Byte[],System.String,System.String,EU.CqrXs.Crypt.Cipher.CipherMode2)">
            <summary>
            DecrpytRoundGoMerry against clock turn -
            starts merry to turn arround from right to left against clock hour cycle 
            </summary>
            <param name="cipherBytes">encrypted byte array</param>
            <param name="secretKey">user secret key, normally email address</param>
            <param name="hashIv">hash relational to secret kay</param>
            <param name="cmode2"><see cref="T:EU.CqrXs.Crypt.Cipher.CipherMode2"/></param>
            <returns><see cref="T:byte[]"/> plain bytes</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CipherPipe.EncrpytTextGoRounds(System.String,System.String,System.String,EU.CqrXs.Crypt.EnDeCoding.EncodingType,EU.CqrXs.Zip.ZipType,EU.CqrXs.Crypt.Hash.KeyHash,EU.CqrXs.Crypt.Cipher.CipherMode2)">
            <summary>
            EncrpytTextGoRounds encrypts text with cipher pipe pipeline
            </summary>
            <param name="inString">plain text to encrypt</param>
            <param name="cryptKey">prviate key for encryption</param>
            <param name="hashIv">private hash for encryption</param>
            <param name="encoding"><see cref="T:EU.CqrXs.Crypt.EnDeCoding.EncodingType"/></param>
            <param name="zipBefore"><see cref="T:EU.CqrXs.Zip.ZipType"/></param>
            <param name="keyHash"><see cref="T:EU.CqrXs.Crypt.Hash.KeyHash"/></param>
            <param name="cmode2"></param>
            <returns>UTF9 emcoded encrypted string without binary data</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CipherPipe.DecryptTextRoundsGo(System.String,System.String,System.String,EU.CqrXs.Crypt.EnDeCoding.EncodingType,EU.CqrXs.Zip.ZipType,EU.CqrXs.Crypt.Hash.KeyHash,EU.CqrXs.Crypt.Cipher.CipherMode2)">
            <summary>
            decrypt encoded encrypted text
            </summary>
            <param name="cryptedEncodedMsg">encoded encrypted ASCII string</param>
            <param name="cryptKey">prviate key for encryption</param>
            <param name="hashIv">private hash for encryption</param>
            <param name="decoding"><see cref="T:EU.CqrXs.Crypt.EnDeCoding.EncodingType"/></param>
            <param name="unzipAfter"><see cref="T:EU.CqrXs.Zip.ZipType"/></param>
            <param name="keyHash"><see cref="T:EU.CqrXs.Crypt.Hash.KeyHash"/></param>
            <param name="cmode2"></param>
            <returns>decrypted UTF8 string, containing no binary data</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CipherPipe.CryptCodeBytes(System.Byte[],System.String,System.String,System.Boolean,EU.CqrXs.Crypt.EnDeCoding.EncodingType,EU.CqrXs.Zip.ZipType,EU.CqrXs.Crypt.Hash.KeyHash,EU.CqrXs.Crypt.Cipher.CipherMode2)">
            <summary>
            Multi functional 
            <see cref="M:EU.CqrXs.Crypt.Cipher.CipherPipe.EncryptEncodeBytes(System.Byte[],System.String,System.String,EU.CqrXs.Crypt.EnDeCoding.EncodingType,EU.CqrXs.Zip.ZipType,EU.CqrXs.Crypt.Hash.KeyHash,EU.CqrXs.Crypt.Cipher.CipherMode2)"/>
            <see cref="M:EU.CqrXs.Crypt.Cipher.CipherPipe.DecodeDecrpytBytes(System.Byte[],System.String,System.String,EU.CqrXs.Crypt.EnDeCoding.EncodingType,EU.CqrXs.Zip.ZipType,EU.CqrXs.Crypt.Hash.KeyHash,EU.CqrXs.Crypt.Cipher.CipherMode2)"/>
            </summary>
            <param name="inBytes">incoming bytes</param>
            <param name="secretKey">user private key</param>
            <param name="hashIV">hashed secret key</param>
            <param name="directionDecrypt">true for decryption, false for encryption</param>
            <param name="encType">encoding ascii type, e.g. base64, uu, xx</param>
            <param name="zip">compression method to zip before or unzip after pipe processed</param>
            <param name="keyHash">hashing type of hashing method to hash key</param>
            <param name="cmode2"></param>
            <returns>transformed byte array</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CipherPipe.GenerateEncryptPipeImage">
            <summary>
            GenerateEncryptPipeImage - generates image for symmetric cipher encryption pipeline
            </summary>
            <returns><see cref="T:System.Drawing.Image">the image</see></returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CipherPipe.GenerateDecryptPipeImage">
            <summary>
            GenerateDecryptPipeImage generates an image for decrypt symmetric cipher pipeline 
            </summary>
            <returns><see cref="T:System.Drawing.Image">the image</see></returns>
        </member>
        <member name="T:EU.CqrXs.Crypt.Cipher.CryptHelper">
            <summary>
            static class CryptHelper provides static helper methods for encryption / decryption
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CryptHelper.PrivateUserKey(System.String)">
            <summary>
            PrivateUserKey, helper to double private secret key to get a longer byte[]
            </summary>
            <param name="secretKey">users private secret key</param>
            <returns>doubled concatendated string of secretKey</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CryptHelper.PrivateKeyWithUserHash(System.String,System.String)">
            <summary>
            PrivateKeyWithUserHash, helper to double private secret key with hash
            </summary>
            <param name="secKey">users private secret key</param>
            <param name="hashedKey">users private secret key hash</param>
            <returns>doubled concatendated string of (secretKey + hash)</returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CryptHelper.KeyUserHashBytes(System.String,System.String,System.Boolean)">
            <summary>
            PrivateKeyWithUserHash, helper to hash merge private user key with hash
            </summary>
            <param name="key">users private key</param>
            <param name="keyHash">key hash</param>
            <param name="merge">do merge</param>
            <returns>doubled concatendated string of (secretKey + hash)</returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CryptHelper.KeyHashBytes(System.Byte[],System.Byte[],System.Boolean)">
            <summary>
            KeyHashBytes
            </summary>
            <param name="keyBytes">private key bytes</param>
            <param name="hashBytes">key hash bytes</param>
            <param name="merge">do merge</param>
            <returns>doubled concatendated string of (secretKey + hash)</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CryptHelper.GetUserKeyBytes(System.String,System.String,System.Int32)">
            <summary>
            GetUserKeyBytes gets symmetric chiffre private byte[KeyLen] encryption / decryption key
            </summary>
            <param name="key">user key, default email address</param>
            <param name="keyHash">user hash</param>        
            <param name="keyLen">length of user key bytes, maximum length <see cref="F:EU.CqrXs.Util.Constants.MAX_KEY_LEN"/></param> 
            <returns>Array of byte with length KeyLen</returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="T:EU.CqrXs.Crypt.Cipher.CryptParams">
            <summary>
            CryptParams parameters for encryption algorithm engine
            </summary>
            <remarks>
            <list type="bullet">
            <listheader>code changes</listheader>
            <item>
            2026-02-11 alert-fix-13 changed mode from "ECB" to "CFB"     
            Reason: Git security scans
            consequences: no more fully deterministic math bijective proper symmertric cipher en-/decryption in pipe
            fixed attacks: not so easy REPLY attacks with binary format header and heuristic key collection
            </item>
            <item>
            2026-mm-dd [enter pull request name here] [enter what you did here]
            Reason: [enter a senseful reason]
            consequences: [describe most impactful consequences of bugfix or code change request]
            fixed [vulnerability, code smell]: [Describe understandable precise in 1-2 setences]
            </item>
            </list>
            </remarks>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CryptParams.#ctor">
            <summary>
            standard ctor with <see cref="F:EU.CqrXs.Crypt.Cipher.CipherEnum.Aes"/> default
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CryptParams.#ctor(EU.CqrXs.Crypt.Cipher.CipherEnum)">
            <summary>
            constructs a object with correct <see cref="P:EU.CqrXs.Crypt.Cipher.CryptParams.Mode"/>, <see cref="P:EU.CqrXs.Crypt.Cipher.CryptParams.BlockSize"/>, <see cref="P:EU.CqrXs.Crypt.Cipher.CryptParams.KeyLen"/>
            for parameter <see cref="P:EU.CqrXs.Crypt.Cipher.CryptParams.Cipher"/>
            </summary>
            <param name="cipherAlgo"><see cref="T:EU.CqrXs.Crypt.Cipher.CipherEnum"/></param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CryptParams.#ctor(EU.CqrXs.Crypt.Cipher.CipherEnum,System.String,System.String)">
            <summary>
            constructs a <see cref="T:EU.CqrXs.Crypt.Cipher.CryptParams"/> object by <see cref="T:EU.CqrXs.Crypt.Cipher.CipherEnum"/>
            with additional <see cref="P:EU.CqrXs.Crypt.Cipher.CryptParams.Key"/> and <see cref="P:EU.CqrXs.Crypt.Cipher.CryptParams.Hash"/>
            </summary>
            <param name="cipherAlgo"><see cref="T:EU.CqrXs.Crypt.Cipher.CipherEnum"/></param>
            <param name="key">secret key</param>
            <param name="hash">corresponding key hash</param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CryptParams.#ctor(EU.CqrXs.Crypt.Cipher.CryptParams)">
            <summary>
            Constructs instance via another object instance
            </summary>
            <param name="cryptParams">another instance</param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.CryptParams.RequestAlgorithm(EU.CqrXs.Crypt.Cipher.CipherEnum)">
            <summary>
            static way to get valid <see cref="T:EU.CqrXs.Crypt.Cipher.CryptParams"/> for a requested <see cref="T:EU.CqrXs.Crypt.Cipher.CipherEnum"/>
            </summary>
            <param name="cipherAlgo"><see cref="T:EU.CqrXs.Crypt.Cipher.CipherEnum"/></param>
            <returns><see cref="T:EU.CqrXs.Crypt.Cipher.CryptParams"/></returns>
        </member>
        <member name="T:EU.CqrXs.Crypt.Cipher.Symmetric.AesNet">
            <summary>
            AesNet native .Net AesCng without bouncy castle
            <see href="https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptography.aescng?view=net-8.0" />
            </summary>
            <remarks>
            <list type="bullet">
            <listheader>code changes</listheader>
            <item>
            2026-02-11 alert-fix-13 changed mode from "ECB" to "CFB"     
            Reason: Git security scans
            consequences: no more fully deterministic math bijective proper symmertric cipher en-/decryption in pipe
            fixed attacks: not so easy REPLY attacks with binary format header and heuristic key collection
            </item>
            <item>
            2026-mm-dd [enter pull request name here] [enter what you did here]
            Reason: [enter a senseful reason]
            consequences: [describe most impactful consequences of bugfix or code change request]
            fixed [vulnerability, code smell]: [Describe understandable precise in 1-2 setences]
            </item>
            </list>
            </remarks>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.AesNet.#cctor">
            <summary>
            static AesNet constructor
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.AesNet.#ctor">
            <summary>
            standard parameterless ctor of AesNet
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.AesNet.#ctor(EU.CqrXs.Crypt.Cipher.CryptParams)">
            <summary>
            AesNet constructor with default crypto parameters
            </summary>
            <param name="cparams"></param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.AesNet.Encrypt(System.Byte[])">
            <summary>
            AES Encrypt by using RijndaelManaged
            </summary>
            <param name="plainData">Array of plain data byte</param>
            <returns>Array of encrypted data byte</returns>
            <exception cref="T:System.ArgumentNullException">is thrown when input enrypted <see cref="T:byte[]"/> is null or zero length</exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.AesNet.Decrypt(System.Byte[])">
            <summary>
            AES Decrypt by using RijndaelManaged
            </summary>
            <param name="encryptedBytes">Array of encrypted data byte</param>
            <returns>Array of plain data byte</returns>
            <exception cref="T:System.ArgumentNullException">is thrown when input enrypted <see cref="T:byte[]"/> is null or zero length</exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.AesNet.EncryptString(System.String,EU.CqrXs.Crypt.EnDeCoding.EncodingType)">
            <summary>
            Encrypts a string
            </summary>
            <param name="inPlainString">plain text string</param>
            <param name="encType"><see cref="T:EU.CqrXs.Crypt.EnDeCoding.EncodingType" /></param>
            <returns>Base64 encoded encrypted byte[]</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.AesNet.DecryptString(System.String,EU.CqrXs.Crypt.EnDeCoding.EncodingType)">
            <summary>
            Decrypts a string, that is truely a base64 encoded encrypted byte[]
            </summary>
            <param name="inCryptString">base64 encoded string from encrypted byte[]</param>
            <returns>plain text string (decrypted)</returns>
        </member>
        <member name="T:EU.CqrXs.Crypt.Cipher.Symmetric.CryptBounceCastle">
            <summary>
            Generic CryptBounceCastle Encryption / Decryption class
            supports <see cref="T:Org.BouncyCastle.Crypto.Engines.CamelliaEngine"/>, <see cref="T:Org.BouncyCastle.Crypto.Engines.Gost28147Engine"/>, <see cref="T:Org.BouncyCastle.Crypto.Engines.RC2Engine"/>,
            <see cref="T:Org.BouncyCastle.Crypto.Engines.RC532Engine"/>, <see cref="T:Org.BouncyCastle.Crypto.Engines.RC6Engine"/>, <see cref="T:Org.BouncyCastle.Crypto.Engines.RijndaelEngine">RijndaelEngine is standard AES</see>, 
            <see cref="T:Org.BouncyCastle.Crypto.Engines.SkipjackEngine"/>, <see cref="T:Org.BouncyCastle.Crypto.Engines.TeaEngine"/>, <see cref="T:Org.BouncyCastle.Crypto.Engines.TnepresEngine"/>,
            <see cref="T:Org.BouncyCastle.Crypto.Engines.XteaEngine"/>, ... and many more
            </summary>
            <remarks>
            <list type="bullet">
            <listheader>code changes</listheader>
            <item>
            2026-02-11 alert-fix-13 changed mode from "ECB" to "CFB"     
            Reason: Git security scans
            consequences: no more fully deterministic math bijective proper symmertric cipher en-/decryption in pipe
            fixed attacks: not so easy REPLY attacks with binary format header and heuristic key collection
            </item>
            <item>
            2026-mm-dd [enter pull request name here] [enter what you did here]
            Reason: [enter a senseful reason]
            consequences: [describe most impactful consequences of bugfix or code change request]
            fixed [vulnerability, code smell]: [Describe understandable precise in 1-2 setences]
            </item>
            </list>
            </remarks>
        </member>
        <member name="P:EU.CqrXs.Crypt.Cipher.Symmetric.CryptBounceCastle.Size">
            <summary>
            Block Size
            </summary>
        </member>
        <member name="P:EU.CqrXs.Crypt.Cipher.Symmetric.CryptBounceCastle.KeyLen">
            <summary>
            KeyLen byte[KeyLen] of Key and Iv
            </summary>
        </member>
        <member name="P:EU.CqrXs.Crypt.Cipher.Symmetric.CryptBounceCastle.CryptoBlockCipher">
            <summary>
            Base symmetric key block cipher interface, contains at runtime block cipher instance to constructor
            </summary>
        </member>
        <member name="P:EU.CqrXs.Crypt.Cipher.Symmetric.CryptBounceCastle.CryptoBlockCipherPadding">
            <summary>
            IBlockCipherPadding BlockCipherPadding mode
            </summary>
        </member>
        <member name="P:EU.CqrXs.Crypt.Cipher.Symmetric.CryptBounceCastle.Mode">
            <summary>
            Valid modes are currently "CBC", "ECB", "CFB", "CCM", "CTS", "EAX", "GOFB"
            <see cref="N:Org.BouncyCastle.Crypto.Modes"/> for crypto modes details.
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.CryptBounceCastle.#ctor">
            <summary>
            parameterless default constructor
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.CryptBounceCastle.#ctor(EU.CqrXs.Crypt.Cipher.CryptParams,System.Boolean)">
            <summary>
            Generic CryptBounceCastle constructor
            </summary>
            <param name="cparams">parameters to crypt</param>
            <param name="init">init <see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.CryptBounceCastle"/> first time with a new key</param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.CryptBounceCastle.GetUserKeyBytes(System.String,System.String)">
            <summary>
            GetUserKeyBytes gets symetric chiffer private byte[KeyLen] encryption / decryption key
            </summary>
            <param name="secretKey">user secret key, default email address</param>
            <param name="secretHash">user host ip address</param>
            <returns>Array of byte with length KeyLen</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.CryptBounceCastle.CanAlgoKeyIV(Org.BouncyCastle.Crypto.IBlockCipher)">
            <summary>
            can this SymmBlockCipherAlgo key with initialization vector?
            </summary>
            <returns>true, if it hanldes init with key and initialization vector iv, otherwise false</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.CryptBounceCastle.Encrypt(System.Byte[])">
            <summary>
            Generic CryptBounceCastle Encrypt member function
            difference between out parameter encryptedData and return value, are 2 different encryption methods, but with the same result at the end
            </summary>
            <param name="plainData">plain data as <see cref="T:byte[]"/></param>
            <returns>encrypted data <see cref="T:byte[]">bytes</see></returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.CryptBounceCastle.Decrypt(System.Byte[])">
            <summary>
            Generic CryptBounceCastle Decrypt member function
            difference between out parameter decryptedData and return value, are 2 different decryption methods, but with the same result at the end
            </summary>
            <param name="cipherData">encrypted <see cref="T:byte[]">bytes</see></param>
            <returns>decrypted plain byte[] data</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.CryptBounceCastle.EncryptString(System.String,EU.CqrXs.Crypt.EnDeCoding.EncodingType)">
            <summary>
            Generic CryptBounceCastle Encrypt String method
            </summary>
            <param name="inString">plain string to encrypt</param>
            <param name="encodingType">
            beware of using <see cref="F:EU.CqrXs.Crypt.EnDeCoding.EncodingType.Uu"/>; 
            default <see cref="F:EU.CqrXs.Crypt.EnDeCoding.EncodingType.Base64"/>
            </param>
            <returns>encoded encrypted string, default base64 encoded</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.CryptBounceCastle.DecryptString(System.String,EU.CqrXs.Crypt.EnDeCoding.EncodingType)">
            <summary>
            Generic CryptBounceCastle Decrypt String method
            </summary>
            <param name="inCryptString">encoded encrypted string, default base64 encoded</param>
            <param name="encodingType">
            beware of using <see cref="F:EU.CqrXs.Crypt.EnDeCoding.EncodingType.Uu"/>; 
            default <see cref="F:EU.CqrXs.Crypt.EnDeCoding.EncodingType.Base64"/>
            </param>
            <returns>plain text decrypted string</returns>
        </member>
        <member name="T:EU.CqrXs.Crypt.Cipher.Symmetric.Des3Net">
            <summary>
            Des3Net native .Net triple des without bouncy castle
            <see href="https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptography.tripledes.-ctor?view=net-8.0" />
            <seealso href="https://www.c-sharpcorner.com/article/tripledes-encryption-and-decryption-in-c-sharp/" />
            </summary>
            <remarks>
            <list type="bullet">
            <listheader>code changes</listheader>
            <item>
            2026-02-11 alert-fix-13 changed mode from "ECB" to "CFB"     
            Reason: Git security scans
            consequences: no more fully deterministic math bijective proper symmertric cipher en-/decryption in pipe
            fixed attacks: not so easy REPLY attacks with binary format header and heuristic key collection
            </item>
            <item>
            2026-mm-dd [enter pull request name here] [enter what you did here]
            Reason: [enter a senseful reason]
            consequences: [describe most impactful consequences of bugfix or code change request]
            fixed [vulnerability, code smell]: [Describe understandable precise in 1-2 setences]
            </item>
            </list>
            </remarks>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.Des3Net.GenDes3Key(System.Byte[]@)">
            <summary>
            GenDes3Key ctor helper method to generate a new key as keybytes
            </summary>
            <param name="keyBytes">ref passed keybytes</param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.Des3Net.GenDes3Iv(System.Byte[],System.Byte[]@)">
            <summary>
            GenDes3Iv ctor helper method, that generates initalization vector IV bytes
            generates 
            </summary>
            <param name="keyBytes">key bytes</param>
            <param name="ivBytes">ref parameter to pass ivBytes</param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.Des3Net.#ctor">
            <summary>
            default standard parameterless constructor of <see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.Des3Net"/>
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.Des3Net.#ctor(System.String,System.String,System.Security.Cryptography.CipherMode)">
            <summary>
            Des3Net ctor with key, hash and <see cref="T:System.Security.Cryptography.CipherMode" />
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.Des3Net.#ctor(System.Byte[],System.Byte[],System.Security.Cryptography.CipherMode)">
            <summary>
            ctor with byte[] for key, iv and <see cref="T:System.Security.Cryptography.CipherMode">default now: CFB</see>
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.Des3Net.#ctor(EU.CqrXs.Crypt.Cipher.CryptParams)">
            <summary>
            ctor with standard <see cref="T:EU.CqrXs.Crypt.Cipher.CryptParams"/>
            </summary>
            <param name="cparams"><see cref="T:EU.CqrXs.Crypt.Cipher.CryptParams"/></param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.Des3Net.Encrypt(System.Byte[])">
            <summary>
            3Des encrypt bytes
            </summary>
            <param name="inBytes">Hex bytes</param>
            <returns>byte[] encrypted bytes</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.Des3Net.Decrypt(System.Byte[])">
            <summary>
            3Des decrypt bytes
            </summary>
            <param name="cipherBytes">Hex bytes encrypted</param>
            <returns>byte[] decrypted bytes</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.Des3Net.EncryptString(System.String)">
            <summary>
            3Des encrypt string
            </summary>
            <param name="inString">string in plain text</param>
            <returns>Base64 encoded encrypted byte array</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.Des3Net.DecryptString(System.String)">
            <summary>
            3Des decrypts string
            </summary>
            <param name="cipherText">Base64 encoded encrypted byte[]</param>
            <returns>plain text string</returns>
        </member>
        <member name="T:EU.CqrXs.Crypt.Cipher.Symmetric.SecureCipherPipe">
            <summary>
            Provides a simple crypt pipe for <see cref="T:EU.CqrXs.Crypt.Cipher.CipherEnum"/>
            </summary>
            <remarks>
            <list type="bullet">
            <listheader>code changes</listheader>
            <item>
            2026-02-11 alert-fix-13 changed mode from "ECB" to "CFB"     
            Reason: Git security scans
            consequences: no more fully deterministic math bijective proper symmertric cipher en-/decryption in pipe
            fixed attacks: not so easy REPLY attacks with binary format header and heuristic key collection
            </item>
            <item>
            2026-mm-dd [enter pull request name here] [enter what you did here]
            Reason: [enter a senseful reason]
            consequences: [describe most impactful consequences of bugfix or code change request]
            fixed [vulnerability, code smell]: [Describe understandable precise in 1-2 setences]
            </item>
            </list>
            </remarks>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SecureCipherPipe.#ctor">
            <summary>
            parameterless default constructor for <see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.SecureCipherPipe"/>
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SecureCipherPipe.#ctor(EU.CqrXs.Crypt.Cipher.CipherEnum[],System.UInt32,EU.CqrXs.Crypt.Cipher.CipherMode2)">
            <summary>
            SecureCipherPipe constructor with an array of <see cref="T:CipherEnum[]"/> as inpipe
            </summary>
            <param name="cipherEnums">array of <see cref="T:CipherEnum[]"/> as inpipe</param>
            <param name="maxpipe">size of max. pipe stages, can't be greater than 8</param>
            <param name="cmode2"><see cref="T:EU.CqrXs.Crypt.Cipher.CipherMode2"/></param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SecureCipherPipe.#ctor(System.String[],System.UInt32,EU.CqrXs.Crypt.Cipher.CipherMode2)">
            <summary>
            SecureCipherPipe constructor with an array of <see cref="T:string[]"/> cipherAlgos as inpipe
            </summary>
            <param name="cipherAlgos">array of <see cref="T:string[]"/> as inpipe</param>
            <param name="maxpipe">maximum lentgh <see cref="F:EU.CqrXs.Util.Constants.MAX_PIPE_LEN"/></param>
            <param name="cmode2"><see cref="T:EU.CqrXs.Crypt.Cipher.CipherMode2"/></param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SecureCipherPipe.#ctor(System.Byte[],System.UInt32,EU.CqrXs.Crypt.Cipher.CipherMode2,System.Boolean)">
            <summary>
            SecureCipherPipe ctor with array of user key bytes
            </summary>
            <param name="keyBytes">user key bytes</param>
            <param name="maxpipe">maximum lentgh <see cref="F:EU.CqrXs.Util.Constants.MAX_PIPE_LEN"/></param>        
            <param name="cmode2"><see cref="T:EU.CqrXs.Crypt.Cipher.CipherMode2"/></param>
            <param name="verbose"></param>
            <exception cref="T:System.ArgumentException"></exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SecureCipherPipe.#ctor(System.String,EU.CqrXs.Crypt.Cipher.CipherMode2,System.Boolean)">
            <summary>
            Constructs a <see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.SecureCipherPipe"/> from key and hash
            by getting <see cref="T:byte[]">byte[] keybytes</see> with <see cref="M:EU.CqrXs.Crypt.Cipher.CryptHelper.GetUserKeyBytes(System.String,System.String,System.Int32)"/>
            </summary>
            <param name="keyHash">secret key to generate pipe</param>
            <param name="cmode2"><see cref="T:EU.CqrXs.Crypt.Cipher.CipherMode2"/></param>
            <param name="verbose"></param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SecureCipherPipe.#ctor(System.String,System.Boolean)">
            <summary>
            SecureCipherPipe ctor with only key
            </summary>
            <param name="key"></param>
            <param name="verbose"></param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SecureCipherPipe.ToJson">
            <summary>
            ToJson 
            </summary>
            <returns>serialized string</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SecureCipherPipe.FromJson(System.String)">
            <summary>
            FromJson
            </summary>
            <param name="json">serialized json</param>
            <returns><see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.SecureCipherPipe"/></returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SecureCipherPipe.EncryptBytesFast(System.Byte[],EU.CqrXs.Crypt.Cipher.CipherEnum,System.String,EU.CqrXs.Crypt.Cipher.CipherMode2)">
            <summary>
            Generic encrypt bytes to bytes
            </summary>
            <param name="inBytes">Array of byte</param>
            <param name="cipherAlgo"><see cref="T:EU.CqrXs.Crypt.Cipher.CipherEnum"/> both symmetric and asymetric cipher algorithms</param>
            <param name="secretKey">secret key to decrypt</param>
            <param name="cmode2"></param>
            <returns>encrypted byte Array</returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SecureCipherPipe.DecryptBytesFast(System.Byte[],EU.CqrXs.Crypt.Cipher.CipherEnum,System.String,EU.CqrXs.Crypt.Cipher.CipherMode2)">
            <summary>
            Generic decrypt bytes to bytes
            </summary>
            <param name="cipherBytes">Encrypted array of byte</param>
            <param name="cipherAlgo"><see cref="T:EU.CqrXs.Crypt.Cipher.CipherEnum"/>both symmetric and asymetric cipher algorithms</param>
            <param name="secretKey">secret key to decrypt</param>
            <returns>decrypted byte Array</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SecureCipherPipe.EncrpytT``2(``1,System.String,EU.CqrXs.Crypt.Cipher.CipherMode2)">
            <summary>
            EncrpytT
            </summary>
            <typeparam name="TRet">
                <see cref="T:string"/>
                <see cref="T:char[]"/>  <see cref="T:IEnumerable{char}"/>
                <see cref="T:bytes[]"/> <see cref="T:IEnumerable{byte}"/>
            </typeparam>
            <typeparam name="TIn">
                <see cref="T:string"/>
                <see cref="T:char[]"/>  <see cref="T:IEnumerable{char}"/>
                <see cref="T:bytes[]"/> <see cref="T:IEnumerable{byte}"/>
            </typeparam>
            <param name="tinSource">plain string, char[], byte[], IEnumerable{char}, IEnumerable{bytes}</param>
            <param name="cryptKey">Unique deterministic key for either generating the mix of symmetric cipher algorithms in the crypt pipeline 
            and unique crypt key for each symmetric cipher algorithm in each stage of the pipe</param>
            <param name="cmode2"></param>
            <returns>encrypted generic type</returns>
            <exception cref="T:EU.CqrXs.Crypt.CException">is thrown on unknown type</exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SecureCipherPipe.DecrpytT``2(``1,System.String,EU.CqrXs.Crypt.Cipher.CipherMode2)">
            <summary>
             DecrpytT generic decryption method
            </summary>
            <typeparam name="TRet">return type 
                <see cref="T:string"/>
                <see cref="T:char[]"/>  <see cref="T:IEnumerable{char}"/>
                <see cref="T:bytes[]"/> <see cref="T:IEnumerable{byte}"/>
            </typeparam>
            <typeparam name="TIn"></typeparam>
            <param name="tinSource">encrypted message</param>
            <param name="cryptKey">Unique deterministic key for either generating the mix of symmetric cipher algorithms in the crypt pipeline 
            and unique crypt key for each symmetric cipher algorithm in each stage of the pipe</param>
            <param name="cmode2"></param>
            <returns>Decrypted generic TRet</returns>
            <exception cref="T:EU.CqrXs.Crypt.CException">is thrown on unknown type</exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SecureCipherPipe.MerryGoRoundEncrpyt(System.Byte[],System.String,EU.CqrXs.Crypt.Cipher.CipherMode2)">
            <summary>
            MerryGoRoundEncrpyt starts merry to go arround from left to right in clock hour cycle
            </summary>
            <param name="inBytes">plain <see cref="T:byte[]"/> to encrypt</param>
            <param name="secretKey">user secret key to use for all symmetric cipher algorithms in the pipe</param>
            <param name="cmode2"><see cref="T:EU.CqrXs.Crypt.Cipher.CipherMode2"/></param>
            <returns>encrypted byte[]</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SecureCipherPipe.DecrpytRoundGoMerry(System.Byte[],System.String,EU.CqrXs.Crypt.Cipher.CipherMode2)">
            <summary>
            DecrpytRoundGoMerry against clock turn -
            starts merry to turn arround from right to left against clock hour cycle 
            </summary>
            <param name="cipherBytes">encrypted byte array</param>
            <param name="secretKey">user secret key, normally email address</param>
            <param name="cmode2"><see cref="T:EU.CqrXs.Crypt.Cipher.CipherMode2"/></param>
            <returns><see cref="T:byte[]"/> plain bytes</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SecureCipherPipe.EncrpytTextGoRounds(System.String,System.String,EU.CqrXs.Crypt.Cipher.CipherMode2)">
            <summary>
            EncrpytTextGoRounds encrypts text with cipher pipe pipeline
            </summary>
            <param name="inString">plain text to encrypt</param>
            <param name="cryptKey">prviate key for encryption</param>
            <param name="cmode2"></param>
            <returns>UTF9 emcoded encrypted string without binary data</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SecureCipherPipe.DecryptTextRoundsGo(System.String,System.String,EU.CqrXs.Crypt.Cipher.CipherMode2)">
            <summary>
            decrypt encoded encrypted text
            </summary>
            <param name="cryptedEncodedMsg">encoded encrypted ASCII string</param>
            <param name="cryptKey">prviate key for encryption</param>
            <param name="cmode2"></param>
            <returns>decrypted UTF8 string, containing no binary data</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SecureCipherPipe.CryptCodeBytes(System.Byte[],System.String,System.Boolean,EU.CqrXs.Crypt.Cipher.CipherMode2)">
            <summary>
            Multi functional 
            <see cref="M:EU.CqrXs.Crypt.Cipher.Symmetric.SecureCipherPipe.EncryptEncodeBytes(System.Byte[],System.String,EU.CqrXs.Crypt.Cipher.CipherMode2)"/>
            <see cref="M:EU.CqrXs.Crypt.Cipher.Symmetric.SecureCipherPipe.DecodeDecrpytBytes(System.Byte[],System.String,EU.CqrXs.Crypt.Cipher.CipherMode2)"/>
            </summary>
            <param name="inBytes">incoming bytes</param>
            <param name="secretKey">user private key</param>
            <param name="directionDecrypt">true for decryption, false for encryption</param>        
            <param name="cmode2"></param>
            <returns>transformed byte array</returns>
        </member>
        <member name="T:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix">
             <summary>
             <see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix"/>, a very simple symmetric block cipher
             hex shifting and position swapping reduced to 0x0 .. 0xf mapping matrix
             Implements <see cref="T:Org.BouncyCastle.Crypto.IBlockCipher">Org.BouncyCastle.Crypto.IBlockCipher</see>
            
             I would never introduce such a cipher in real world applications, 
             only for students how the simplest blockcipher works
             
             probably already invented, but created by zen@area23.at (Heinrich Elsigan)
             Everything under the namespace `Area23.At.Framework.Library.Crypt.Cipher` is licensed under the MIT License.
             <see href="https://opensource.org/license/mit">opensource.org/license/mit</see>
             </summary>
        </member>
        <member name="F:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix.MatrixPermutationBase">
            <summary>
            MatrixPermutationBase is a Permutation Matrix where every value will mapped to itself
            ( 
                1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
                0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
                0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
                0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
                0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
                0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
                0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
                0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
                0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
                0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
            </summary>
        </member>
        <member name="F:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix.MagicOrder">
            <summary>
            MagicOrder is a byte[], that helps filling up keybytes up 16 bytes deterministic, when keybytes lesser then 16
            </summary>
        </member>
        <member name="P:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix.MatrixPermutationKey">
            <summary>
            abstraction of a 0x10 => 0x10 matrix, for example if 
            MatrixPermutationKey = { 0x8, 0x3, 0x1, 0xe, 0x9, 0xf, 0x5, 0xc, 0x4, 0xd, 0xa, 0x7, 0xb, 0x2, 0x0, 0x6 }
                       
                0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
                
            (   0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,             0
                0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,             1
                0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,             2
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,             3
                0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,             4
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,             5
                0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,             6
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,             7
                0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,             8
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,             9
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,             a
                0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,             b
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,             c
                0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,             d
                1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,             e
                0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,             f
                
            then 
            value 0x0 will be mapped to 0x8      0 →   8
            value 0x1 will be mapped to 0x3      1 →   3
            value 0x2 will be mapped to 0x1      2 →   1
            value 0x3 will be mapped to 0xe      3 →  14
            ... and         
            value 0xe will be mapped to 0x0     14 →   0
            value 0xf will be mapped to 0x6     15 →   6         
            
            a full symmetric <see cref="P:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix.MatrixPermutationKey"/> would like:
                0    1    2    3    4    5    6    7    8    9    a    b    c    d    e    f
             { 0x8, 0x3, 0xe, 0x1, 0x9, 0xf, 0xb, 0xd, 0x0, 0x4, 0xc, 0x6, 0xa, 0x7, 0x2, 0x5 }
            
             that means, that
             value 0x0 will be mapped to 0x8 ⇔ 0x8 will be mapped back to 0x0      0 →	8 AND  8 →	0
             value 0x1 will be mapped to 0x3 ⇔ 0x3 will be mapped back to 0x1      1 →	3 AND  3 →	1
             value 0x2 will be mapped to 0xe ⇔ 0xe will be mapped back to 0x2      2 →	e AND  e →	2
             value 0x3 is already mapped back to 0x1 !                              3 →	1
             ...
             value 0xf is   already mapped back to 0x5 !                            f →	5
            </summary>
        </member>
        <member name="P:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix.InverseMatrix">
            <summary>
            Inverse Matrix 
            </summary>
        </member>
        <member name="P:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix.PermutationKeyHash">
            <summary>
            PermutationKeyHash is same as <see cref="P:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix.MatrixPermutationKey"/>
            Advantage of <see cref="T:HashSet{byte}"/> is, that no duplicated values can be inside
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix.ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)">
            <summary>
            Processes one BLOCK with BLOCK_SIZE <see cref="F:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix.BLOCK_SIZE"/>
            </summary>
            <param name="inBuf"></param>
            <param name="inOff"></param>
            <param name="outBuf"></param>
            <param name="outOff"></param>
            <returns></returns>
            <exception cref="T:System.IO.InvalidDataException"></exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix.#ctor(System.Int32)">
            <summary>
            public constructor
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix.#ctor(System.String,System.String,System.Boolean,EU.CqrXs.Crypt.Hash.KeyHash)">
            <summary>
            initializes a <see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix"/> with secret user key string and hash iv
            </summary>
            <param name="secretKey">user's secret key</param>
            <param name="hashIV">private key hash iv string</param>
            <param name="fullSymmetric">
            fullSymmetric means that zen matrix is it's inverse element 
            and decrypts back to plain text, when encrypting twice or ²</param>       
            <exception cref="T:System.ApplicationException"></exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix.#ctor(System.Byte[],System.Boolean)">
            <summary>
            initializes a <see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix"/> with an array of key bytes
            </summary>
            <param name="keyBytes">array of key bytes</param>
            <param name="fullSymmetric">
            fullSymmetric means that zen matrix is it's inverse element 
            and decrypts back to plain text, when encrypting twice or ²</param> 
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix.InitMatrixSymChiffer">
            <summary>
            InitMatrixSymChiffer - base initialization of variables, needed for matrix sym chiffer encryption
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix.ZenMatrixGenWithBytes(System.Byte[],System.Boolean)">
            <summary>
            Generates ZenMatrix with key bytes
            </summary>
            <param name="keyBytes">must have at least 4 bytes and will be truncated after 16 bytes
            only the first 16 bytes will be taken from keyBytes for <see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix"/>
            </param>
            <returns>true, if init was with same key successfull</returns>
            <param name="fullSymmetric">
            fullSymmetric means that zen matrix is it's inverse element 
            and decrypts back to plain text, when encrypting twice or ²</param>       
            <exception cref="T:System.ApplicationException"></exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix.ProcessBytes(System.Byte[],System.Int32,System.Int32)">
            <summary>
            ProcessBytes processes bytes for encryption or decryption depending on <see cref="F:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix.forEncryption"/>
                processes the next len=16 bytes to encrypt, starting at offSet
                or processes the next len=16 bytes to decrypt, starting at offSet
            </summary>
            <param name="inBytes">in bytes array to encrypt</param>
            <param name="offSet">starting offSet</param>
            <param name="len">len of byte block (default 16)</param>
            <returns>byte[len] (default: 16) segment of encrypted bytes</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix.PadBuffer(System.Byte[],System.Boolean)">
            <summary>
            in case of encryption, 
                pads 0 or random buffer at end of inBytes,
                so that inBytes % BLOCK_SIZE == 0 
            in case of decryption,
                trims remaining padding buffer from inBytes
            encryption or decryption are triggered via <see cref="F:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix.forEncryption"/>
            </summary>
            <param name="inBytes">input bytes to pad </param>
            <param name="useRandom">use random padding</param>
            <returns>padded or unpadded out bytes</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix.Encrypt(System.Byte[],System.Boolean)">
            <summary>
            MatrixSymChiffer Encrypt member function
            </summary>
            <param name="pdata">plain data as <see cref="T:byte[]"/></param>
            <returns>encrypted data <see cref="T:byte[]">bytes</see></returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix.Decrypt(System.Byte[])">
            <summary>
            MatrixSymChiffer Decrypt member function
            </summary>
            <param name="ecdata">encrypted cipher <see cref="T:byte[]">bytes</see></param>
            <returns>decrypted plain byte[] data</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix.MapByteValue(System.Byte@,System.Byte@,System.Boolean)">
            <summary>
            MapByteValue splits a byte in 2 0x0 - 0xf segments and map both trough <see cref="P:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix.MatrixPermutationKey"/> in case of encrypt,
            through <see cref="P:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix.InverseMatrix"/> in case of decryption.
            </summary>
            <param name="inByte"><see cref="T:System.Byte"/> in byte to map</param>
            <param name="outByte"><see cref="T:System.Byte"/> mapped out byte</param>
            <param name="encrypt">true for encryption, false for decryption</param>
            <returns>An <see cref="T:byte[]"/> array with 2  0x0 - 0xf segments (most significant and least significant) bit</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix.BuildInverseMatrix(System.Byte[],System.Int32)">
            <summary>
            BuildInverseMatrix, builds the determinant decryption matrix for byte[16] encryption matrix
            </summary>
            <param name="matrix">byte[16] encryption matrix</param>
            <returns><see cref="T:byte[]">byte[16]</see> decryption matrix (determinante)</returns>
        </member>
        <member name="T:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix2">
            <summary>
            More complex but still lightweight byte mapping from 0x0 .. to 0xf as symmetric cipher matrix
            position swaps and byte mappings are seperated in 2 matrizes 
            and maybe I will add ZenMatrix3 l8r, to multiply and divide byte values with a 3rd matrix 
            for mapping byte[1] => byte[1] 0xf => 0xab and generate 
            
            I would never introduce such a cipher in real world applications, 
            only for students how the simplest blockcipher works
            
            maybe this encryption is already invented, but created at Git by zen@area23.at (Heinrich Elsigan)
            </summary>
        </member>
        <member name="P:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix2.MatrixPermutationKey2">
            <summary>
            abstraction of a 0x10 => 0x10 matrix, for example
            <see cref="P:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix2.MatrixPermutationKey2"/> 
            </summary>
        </member>
        <member name="P:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix2.InverseMatrix2">
            <summary>
            Inverse Matrix 2 
            </summary>
        </member>
        <member name="P:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix2.PermutationKeyHash2">
            <summary>
            PermutationKeyHash is same as <see cref="P:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix2.MatrixPermutationKey2"/>
            Advantage of <see cref="T:HashSet{byte}"/> is, that no duplicated values can be inside
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix2.#ctor">
            <summary>
            public constructor
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix2.#ctor(System.String,System.String,System.Boolean)">
            <summary>
            initializes a <see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix"/> with secret user key string and hash iv
            </summary>
            <param name="secretKey">user's secret key</param>
            <param name="hashIV">private key hash iv string</param>
            <param name="fullSymmetric">
            fullSymmetric means that zen matrix is it's inverse element 
            and decrypts back to plain text, when encrypting twice or ²</param>       
            <exception cref="T:System.ApplicationException"></exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix2.#ctor(System.Byte[],System.Boolean)">
            <summary>
            initializes a <see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix"/> with an array of key bytes
            </summary>
            <param name="keyBytes2"><see cref="T:byte[]">array of key bytes</see></param>
            <param name="fullSymmetric">
            fullSymmetric means that zen matrix is it's inverse element 
            and decrypts back to plain text, when encrypting twice or ²</param> 
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix2.InitMatrixSymChiffer2">
            <summary>
            InitMatrixSymChiffer - base initialization of variables, needed for matrix sym chiffer encryption
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix2.ZenMatrixGenWithBytes2(System.Byte[],System.Boolean)">
            <summary>
            Generates ZenMatrix with key bytes
            </summary>
            <param name="keyBytes2">must have at least 4 bytes and will be truncated after 16 bytes
            only the first 16 bytes will be taken from keyBytes for <see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix"/>
            </param>
            <returns>true, if init was with same key successfull</returns>
            <param name="fullSymmetric">
            fullSymmetric means that zen matrix is it's inverse element 
            and decrypts back to plain text, when encrypting twice or ²</param>       
            <exception cref="T:System.ApplicationException"></exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix2.ProcessBytes2(System.Byte[],System.Int32,System.Int32)">
            <summary>
            ProcessBytes2  processes the next len=16 bytes to encrypt or decrypt, starting at offSet
            </summary>
            <param name="inBytes">incoming bytes array to en-/deccrypt</param>
            <param name="offSet">starting offSet</param>
            <param name="len">len of byte block (default 16)</param>
            <returns>byte[len] (default: 16) segment of decrypted bytes</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix2.Encrypt(System.Byte[],System.Boolean)">
            <summary>
            MatrixSymChiffer Encrypt member function
            </summary>
            <param name="pdata">plain data as <see cref="T:byte[]"/></param>
            <returns>encrypted data <see cref="T:byte[]">bytes</see></returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix2.Decrypt(System.Byte[])">
            <summary>
            MatrixSymChiffer Decrypt member function
            </summary>
            <param name="ecdata">encrypted cipher <see cref="T:byte[]">bytes</see></param>
            <returns>decrypted plain byte[] data</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix2.BuildInverseMatrix2(System.Byte[],System.Int32)">
            <summary>
            BuildInverseMatrix, builds the determinant decryption matrix for byte[16] encryption matrix
            </summary>
            <param name="matrix">byte[16] encryption matrix</param>
            <returns><see cref="T:byte[]">byte[16]</see> decryption matrix (determinante)</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix2.MapByteValue2(System.Byte@,System.Byte@,System.Boolean)">
            <summary>
            MapByteValue splits a byte in 2 0x0 - 0xf segments and map both trough <see cref="P:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix2.MatrixPermutationKey2"/> in case of encrypt,
            through <see cref="P:EU.CqrXs.Crypt.Cipher.Symmetric.ZenMatrix2.InverseMatrix2"/> in case of decryption.
            </summary>
            <param name="inByte"><see cref="T:System.Byte"/> in byte to map</param>
            <param name="outByte"><see cref="T:System.Byte"/> mapped out byte</param>
            <param name="encrypt">true for encryption, false for decryption</param>
            <returns>An <see cref="T:byte[]"/> array with 2  0x0 - 0xf segments (most significant + least significant) bit</returns>
        </member>
        <member name="T:EU.CqrXs.Crypt.CryptSettings">
            <summary>
            Comes from SecureChat, maybe we will need it in a different kind in future.
            TODO: adapt it with low priority.
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.CryptSettings.#ctor">
            <summary>
            CryptSettings constructor maybe needed public for NewTonSoftJson serializing object
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.CryptSettings.#ctor(System.DateTime)">
            <summary>
            ctor with inital timestamp
            </summary>
            <param name="timeStamp"></param>
        </member>
        <member name="M:EU.CqrXs.Crypt.CryptSettings.Load(System.String)">
            <summary>
            loads json serialized Settings data string from 
            <see cref="P:EU.CqrXs.Util.LibPaths.SystemDirPath"/> + <see cref="F:EU.CqrXs.Util.Constants.JSON_SAVE_FILE"/>
            and deserialize it to singleton instance <see cref="T:EU.CqrXs.Crypt.CryptSettings"/> of <seealso cref="T:System.Lazy`1"/>
            </summary>
            <param name="jsonFileName">fileName of serialized json</param>
            <returns>singelton <see cref="P:EU.CqrXs.Crypt.CryptSettings.Instance"/></returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.CryptSettings.Save(EU.CqrXs.Crypt.CryptSettings,System.String)">
            <summary>
            json serializes <see cref="T:EU.CqrXs.Crypt.CryptSettings"/> and 
            saves json serialized data string to 
            <see cref="P:EU.CqrXs.Util.LibPaths.SystemDirPath"/> + <see cref="F:EU.CqrXs.Util.Constants.JSON_SAVE_FILE"/>
            </summary>
            <param name="settings">settings to save</param>
            <param name="jsonFileName">filename, where writing serialized json</param>
            <returns>true on successfully save</returns>
        </member>
        <member name="T:EU.CqrXs.Crypt.EnDeCoding.Base16">
            <summary>
            RawString hexadecimal byte encoding / decoding
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Base16.Encode(System.Byte[])">
            <summary>
            Encodes a byte[] 
            </summary>
            <param name="inBytes">byte array to encode</param>
            <returns>hex16 encoded string</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Base16.Decode(System.String)">
            <summary>
            Decodes a hex string to byte[]
            </summary>
            <param name="encodedString">hex16 encoded string</param>
            <returns></returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Base16.ToBase16(System.Byte[])">
            <summary>
            ToBase16 converts a binary byte array to hex string
            </summary>
            <param name="inBytes">byte array</param>
            <returns>hex string</returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Base16.FromBase16(System.String)">
            <summary>
            FromBase16 transforms a hex string to binary byte array
            </summary>
            <param name="hexStr">a hex string</param>
            <returns>binary byte array</returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="T:EU.CqrXs.Crypt.EnDeCoding.Base32">
            <summary>
            Base32 encoding is a mapping for double hex from A-Z0-7 (32 chiffers per digit)
            <see href="https://gist.github.com/erdomke/9335c394c5cc65404c4cf9aceab04143"/>
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Base32.Encode(System.Byte[])">
            <summary>
            Encodes byte[] to valid encode formatted string
            </summary>
            <param name="inBytes">byte array to encode</param>
            <returns>encoded string</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Base32.Decode(System.String)">
            <summary>
            Decodes an encoded string to byte[]
            </summary>
            <param name="encodedString">encoded string</param>
            <returns>byte array</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Base32.IsValid(System.String)">
            <summary>
            Checks if a string is a valid encoded string
            </summary>
            <param name="encodedString">encoded string</param>
            <returns>true, when encoding is OK, otherwise false, if encoding contains illegal characters</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Base32.FromBase32(System.String)">
            <summary>
            FromBase32 converts a base32 string to a binary byte array
            </summary>
            <param name="encoded">base32 encoded string</param>
            <returns>byte array</returns>
            <exception cref="T:System.ArgumentNullException"></exception>
            <exception cref="T:System.FormatException"></exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Base32.ToBase32(System.Byte[],System.Boolean)">
            <summary>
            ToBase32
            </summary>
            <param name="data">binary data in byte array to convert</param>
            <param name="padOutput">block padding with =</param>
            <returns>Base32 encoded string</returns>
        </member>
        <member name="T:EU.CqrXs.Crypt.EnDeCoding.Hex64">
            <summary>
            Base64 mime standard encoding
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Hex64.Encode(System.Byte[])">
            <summary>
            Encodes byte[] to valid encode formatted string
            </summary>
            <param name="inBytes">byte array to encode</param>
            <returns>encoded string</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Hex64.Decode(System.String)">
            <summary>
            Decodes an encoded string to byte[]
            </summary>
            <param name="encodedString">encoded string</param>
            <returns>byte array</returns>
        </member>
        <member name="T:EU.CqrXs.Crypt.EnDeCoding.Base64">
            <summary>
            Base64 mime standard encoding
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Base64.Encode(System.Byte[])">
            <summary>
            Encodes byte[] to valid encode formatted string
            </summary>
            <param name="inBytes">byte array to encode</param>
            <returns>encoded string</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Base64.Decode(System.String)">
            <summary>
            Decodes an encoded string to byte[]
            </summary>
            <param name="encodedString">encoded string</param>
            <returns>byte array</returns>
        </member>
        <member name="T:EU.CqrXs.Crypt.EnDeCoding.EncodingType">
            <summary>
            EncodingType Enum 
            TODO: base58
            </summary>
        </member>
        <member name="T:EU.CqrXs.Crypt.EnDeCoding.EnDeCodeHelper">
            <summary>
            static helper class for Encoding / Decoding
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.EnDeCodeHelper.KeyToHex(System.String)">
            <summary>
            KeyHexString transforms a private secret key to hex string
            </summary>
            <param name="key">private secret key</param>
            <returns>hex string of bytes</returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.EnDeCodeHelper.KeyBytesToHex(System.Byte[])">
            <summary>
            KeyBytesToHex transforms keyBytes to a hex string
            </summary>
            <param name="keyBytes"><see cref="T:byte[]"/> keyBytes to transform</param>
            <returns><see cref="T:System.String">hexString</see> of keyBytes</returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.EnDeCodeHelper.KeyBytesToHexBytesSalt(System.Byte[],System.Int32)">
            <summary>
            KeyToHexBytes
            </summary>
            <param name="keyBytes">secret keyBytes</param>
            <param name="length">byte array length, default: 16, -1 for unlimited length</param>
            <returns><see cref="T:byte[]">byte[length]</see></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.EnDeCodeHelper.HexToKey(System.String)">
            <summary>
            HexToKey
            </summary>
            <param name="hexString"></param>
            <returns>key from hex string</returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.EnDeCodeHelper.EncodeBytes(System.Byte[],EU.CqrXs.Crypt.EnDeCoding.EncodingType,System.Boolean,System.Boolean)">
            <summary>
            EncodeBytes encodes byte[] inBytes by encodingMethod to an encoded text string
            </summary>
            <param name="inBytes">inBytes to encdode</param>
            <param name="encodingType">EncodingTypes are "None", "Hex16", "Base16", "Base32", "Hex32", "Uu", "Base64".
            "Base64" is default.</param>
            <param name="fromPlain">Only for uu: true, if <see cref="T:byte[]"/> represent a binary without encryption</param>
            <param name="fromFile">Only for uu: true, if file and not textbox will be encrypted, default (false)</param>
            <returns>encoded string</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.EnDeCodeHelper.EncodeBytesToString(System.Byte[],System.String)">
            <summary>
            EncodeBytes encodes byte[] inBytes by encodingMethod as plain text param enCodingString to an encoded text string
            </summary>
            <param name="inBytes">inBytes to encdode</param>
            <param name="enCodingString">ebcoding enum <see cref="T:EU.CqrXs.Crypt.EnDeCoding.EncodingType"/> as plain string
            "Base64" is default.</param>
            <returns>encoded string</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.EnDeCodeHelper.DecodeText(System.String,EU.CqrXs.Crypt.EnDeCoding.EncodingType,System.Boolean,System.Boolean)">
            <summary>
            EncodedTextToBytes transforms an encoded text string into a <see cref="T:byte[]">býte array</see>
            </summary>
            <param name="cipherText">encoded (encrypted) text string</param>
            <param name="encodingType"><see cref="T:EU.CqrXs.Crypt.EnDeCoding.EncodingType"/> could be 
            "None", "Hex16", "Base16", "Base32", "Hex32", "Uu", "Base64". "Base64" is default.</param>
            <param name="fromPlain">Only for uu: true, if <see cref="T:byte[]"/> represent a binary without encryption</param>
            <param name="fromFile">Only for uu: true, if file and not textbox will be encrypted, default (false)</param>
            <returns><see cref="T:byte[]">binary byte array</see></returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.EnDeCodeHelper.DecodeText(System.String,System.String)">
            <summary>
            DecodeText decodes an encoded text string to a <see cref="T:byte[]">býte array</see>
            </summary>
            <param name="inText">encoded (encrypted) text string</param>
            <param name="enCodingString">ebcoding enum <see cref="T:EU.CqrXs.Crypt.EnDeCoding.EncodingType"/> as plain string
            "Base64" is default.</param>
            <returns>binary byte array</returns>
            <exception cref="T:System.FormatException"></exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.EnDeCodeHelper.DecodeBytes(System.Byte[],System.String)">
            <summary>
            DecodeText decodes an encoded text string to a <see cref="T:byte[]">býte array</see>
            </summary>
            <param name="inBytes">encoded (encrypted) text string</param>
            <param name="enCodingString">ebcoding enum <see cref="T:EU.CqrXs.Crypt.EnDeCoding.EncodingType"/> as plain string
            "Base64" is default.</param>
            <returns>binary byte array</returns>>
            <returns></returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.EnDeCodeHelper.GetBytesFromString(System.String,System.Int32,System.Boolean)">
            <summary>
            GetBytesFromString gets byte[] array representing binary transformation of a string
            </summary>
            <param name="inString">string to transfer to binary byte[] data</param>
            <param name="blockSize">current block size, default: 256</param>
            <param name="upStretchToCorrectBlockSize">fills at the end of byte[] padding zero 0 bytes, default: false</param>
            <returns>byte[] array of binary byte</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.EnDeCodeHelper.GetStringFromBytesTrimNulls(System.Byte[])">
            <summary>
            GetStringFromBytesTrimNulls gets a plain text string from binary byte[] data and truncate all 0 byte at the end.
            </summary>
            <param name="decryptedBytes">decrypted byte[]</param>
            <returns>truncated string without a lot of \0 (null) characters</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.EnDeCodeHelper.GetBytesTrimNulls(System.Byte[])">
            <summary>
            GetBytesTrimNulls gets a byte[] from binary byte[] data and truncate all 0 byte at the end.
            </summary>
            <param name="inBytes">decrypted byte[]</param>
            <returns>truncated byte[] without a lot of \0 (null) characters</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.EnDeCodeHelper.GetBytesTrimCrLfNulls(System.Byte[])">
            <summary>
            GetBytesTrimNulls gets a byte[] from binary byte[] data and truncate all 0 byte at the end.
            </summary>
            <param name="inBytes">decrypted byte[]</param>
            <returns>truncated byte[] without a lot of \0 (null) characters</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.EnDeCodeHelper.Trim_Decrypted_Text(System.String)">
            <summary>
            Trim_Decrypted_Text removes all special control characters from a text string
            </summary>
            <param name="decryptedText">string to trim and strip from special control characters.</param>
            <returns>text only string with at least text formation special characters.</returns>
        </member>
        <member name="T:EU.CqrXs.Crypt.EnDeCoding.Hex16">
            <summary>
            Normal hexadecimal byte encoding / decoding
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Hex16.Encode(System.Byte[])">
            <summary>
            Encodes byte[] to valid encode formatted string
            </summary>
            <param name="inBytes">byte array to encode</param>
            <returns>encoded string</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Hex16.Decode(System.String)">
            <summary>
            Decodes an encoded string to byte[]
            </summary>
            <param name="encodedString">encoded string</param>
            <returns>byte array</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Hex16.ToHex16(System.Byte[])">
            <summary>
            Encode ToHex converts a binary byte array to hex string
            </summary>
            <param name="inBytes">byte array</param>
            <returns>hex string</returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Hex16.FromHex16(System.String)">
            <summary>
            Decode FromHex transforms a hex string to binary byte array
            </summary>
            <param name="hexStr">a hex string</param>
            <returns>binary byte array</returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="T:EU.CqrXs.Crypt.EnDeCoding.Hex32">
            <summary>
            Hex32 encoding is a mapping for double hex from 0-9A-V (32 chiffers per digit), padding char is =
            <see href="https://datatracker.ietf.org/doc/html/rfc4648#section-7" />
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Hex32.Encode(System.Byte[])">
            <summary>
            Encodes byte[] to valid encode formatted string
            </summary>
            <param name="inBytes">byte array to encode</param>
            <returns>encoded string</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Hex32.Decode(System.String)">
            <summary>
            Decodes an encoded string to byte[]
            </summary>
            <param name="encodedString">encoded string</param>
            <returns>byte array</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Hex32.FromHex32(System.String)">
            <summary>
            FromHex32 converts a base32 string to a binary byte array
            </summary>
            <param name="encoded">base32 encoded string</param>
            <returns>byte array</returns>
            <exception cref="T:System.ArgumentNullException"></exception>
            <exception cref="T:System.FormatException"></exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Hex32.ToHex32(System.Byte[],System.Boolean)">
            <summary>
            ToHex32
            </summary>
            <param name="data">binary data in byte array to convert</param>
            <param name="padOutput">block padding with =</param>
            <returns>Base32 encoded string</returns>
        </member>
        <member name="T:EU.CqrXs.Crypt.EnDeCoding.IDecodable">
            <summary>
            IDecodable is an common interface for <see cref="T:EU.CqrXs.Crypt.EnDeCoding.Base16"/>, <see cref="T:EU.CqrXs.Crypt.EnDeCoding.Base32"/>, <see cref="T:EU.CqrXs.Crypt.EnDeCoding.Base64"/>, 
            <see cref="T:EU.CqrXs.Crypt.EnDeCoding.Hex16"/>, <see cref="T:EU.CqrXs.Crypt.EnDeCoding.Hex32"/>, <see cref="T:EU.CqrXs.Crypt.EnDeCoding.Hex64"/>
            <seealso cref="T:EU.CqrXs.Crypt.EnDeCoding.Uu"/> and <seealso cref="T:EU.CqrXs.Crypt.EnDeCoding.Xx"/> Encoding / Decoding
            </summary>
        </member>
        <member name="T:EU.CqrXs.Crypt.EnDeCoding.RawString">
            <summary>
            Base16 hexadecimal byte encoding / decoding
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.RawString.Encode(System.Byte[])">
            <summary>
            Encodes a byte[] 
            </summary>
            <param name="inBytes">byte array to encode</param>
            <returns>hex16 encoded string</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.RawString.Decode(System.String)">
            <summary>
            Decodes a hex string to byte[]
            </summary>
            <param name="encodedString">hex16 encoded string</param>
            <returns><see cref="T:byte[]"/></returns>
        </member>
        <member name="T:EU.CqrXs.Crypt.EnDeCoding.Uu">
            <summary>
            Uu is unix2unix uuencode uudecode
            Thanks to <see href="https://github.com/n3wt0n/Crypto/blob/master/DBTek.Crypto.Shared/UUEncoder.cs" />
            Thanks to <see href="https://rextester.com/TGN19503" />
            Thanks to <see href="https://ssojet.com/binary-encoding-decoding/uuencoding-in-c/" />
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Uu.Encode(System.Byte[])">
            <summary>
            Encodes byte[] to valid encode formatted string
            </summary>
            <param name="data"><see cref="T:byte[]">byte array to encode</see></param>
            <returns>encoded string</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Uu.Decode(System.String)">
            <summary>
            Decodes an encoded string to byte[]
            </summary>
            <param name="encodedString">encoded string</param>
            <returns>byte array</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Uu.ToUu(System.Byte[])">
            <summary>
            ToUu
            </summary>
            <param name="inBytes">binary byte array</param>
            <returns>uuencoded string</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Uu.FromUu(System.String)">
            <summary>
            FromUu
            </summary>
            <param name="uuEncStr">uuencoded string</param>
            <returns>binary byte array</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Uu.UuEncode(System.String)">
            <summary>
            UuEncode unix 2 unix encodes a string
            </summary>
            <param name="plainText">plain text string to encode</param>
            <returns>uuencoded string</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Uu.UuDecode(System.String)">
            <summary>
            UuDecode unix 2 unix decodes a string
            </summary>
            <param name="uuEncodedStr">uuencoded string</param>
            <returns>uudecoded plain text</returns>
        </member>
        <member name="T:EU.CqrXs.Crypt.EnDeCoding.Xx">
            <summary>
            XxEncode / XxDecode
            Thanks to <see href="https://github.com/n3wt0n/Crypto/blob/master/DBTek.Crypto.Shared/UUEncoder.cs" />
            Thanks to <see href="https://rextester.com/TGN19503" />
            Thanks to <see href="https://ssojet.com/binary-encoding-decoding/uuencoding-in-c/" />
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Xx.Encode(System.Byte[])">
            <summary>
            Encodes byte[] to valid encode formatted string
            </summary>
            <param name="inBytes">byte array to encode</param>
            <returns>encoded string</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Xx.Decode(System.String)">
            <summary>
            Decodes an encoded string to byte[]
            </summary>
            <param name="encodedString">encoded string</param>
            <returns>byte array</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Xx.ToXx(System.Byte[])">
            <summary>
            ToXx
            </summary>
            <param name="inBytes">binary byte array</param>
            <returns>xxencoded string</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Xx.FromXx(System.String)">
            <summary>
            FromXx
            </summary>
            <param name="xxEncStr">uuencoded string</param>
            <returns>binary byte array</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Xx.XxEncode(System.String)">
            <summary>
            XxEncode 
            </summary>
            <param name="plainText">plain text string to encode</param>
            <returns>uuencoded string</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.EnDeCoding.Xx.XxDecode(System.String)">
            <summary>
            XxDecode
            </summary>
            <param name="xxEncodedStr">xx encoded string</param>
            <returns>xx decoded plain text</returns>
        </member>
        <member name="T:EU.CqrXs.Crypt.Hash.BCrypt">
            <summary>
            BCrypt a classic unix passwd crypt method
            
            All members are implemented via <see cref="N:Org.BouncyCastle.Crypto"/> namespace.
            Thanx to the legion of <see href="https://bouncycastle.org/" />
            <see cref="T:Org.BouncyCastle.Crypto.Generators.BCrypt"/>
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Hash.BCrypt.BCryptHash(System.Byte[])">
            <summary>
            <see cref="T:Org.BouncyCastle.Crypto.Generators.BCrypt"/>
            Thanx to the legion of <see href="https://bouncycastle.org/" />
            </summary>
            <param name="keyBytes">keyBytes to hash encrypt</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
            <exception cref="T:System.ArgumentException"></exception>
        </member>
        <member name="T:EU.CqrXs.Crypt.Hash.KeyHash">
            <summary>
            KeyHash 
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Hash.KeyHash_Extensions.GetKeyFromBaseBytes(System.Byte[],System.Int32)">
            <summary>
            GetKeyFromBaseBytes Extension method for byte[] baseBytes
            </summary>
            <param name="baseBytes">baseBytes from which keyBytes are extracted</param>
            <param name="keyLen">length of keyBytes array</param>
            <returns><see cref="T:byte[]">byte[] bytesKey</see></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="T:EU.CqrXs.Crypt.Hash.MD5Sum">
            <summary>
            MD5Sum hashes a md5 sum for a string, stream, byte[], 
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Hash.MD5Sum.Hash(System.String,System.Boolean)">
            <summary>
            Hash
            </summary>
            <param name="filePath">filePath to file</param>
            <param name="showFileName">show fileName after hash sum</param>
            <returns></returns>
        </member>
        <member name="T:EU.CqrXs.Crypt.Hash.OpenBSDCrypt">
            <summary>
            OpenBSDCrypt a classic unix passwd crypt method
            
            All members are implemented via <see cref="N:Org.BouncyCastle.Crypto"/> namespace.
            Thanx to the legion of <see href="https://bouncycastle.org/" />
            <see cref="T:Org.BouncyCastle.Crypto.Generators.OpenBsdBCrypt"/>
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Hash.OpenBSDCrypt.OpenBSDCryptHash(System.Byte[])">
            <summary>
            <see cref="T:Org.BouncyCastle.Crypto.Generators.OpenBsdBCrypt" />
            Thanx to the legion of <see href="https://bouncycastle.org/" />
            </summary>
            <param name="keyBytes">keyBytes to hash encrypt</param>
            <returns><see cref="T:byte[]">byte[]</see></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
            <exception cref="T:System.ArgumentException"></exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.Hash.OpenBSDCrypt.OpenBSDCryptHash(System.String)">
            <summary>
            <see cref="T:Org.BouncyCastle.Crypto.Generators.OpenBsdBCrypt" />
            Thanx to the legion of <see href="https://bouncycastle.org/" />
            </summary>
            <param name="passwd">string password</param>
            <returns>string encrypted password</returns>
            <exception cref="T:System.ArgumentNullException"></exception>
            <exception cref="T:System.ArgumentException"></exception>
        </member>
        <member name="T:EU.CqrXs.Crypt.Hash.SCrypt">
            <summary>
            SCrypt a classic unix passwd crypt method
            
            All members are implemented via <see cref="N:Org.BouncyCastle.Crypto"/> namespace.
            Thanx to the legion of <see href="https://bouncycastle.org/"/>
            <see cref="T:Org.BouncyCastle.Crypto.Generators.SCrypt"/>
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Hash.SCrypt.SCryptHash(System.Byte[])">
            <summary>
            <see cref="T:Org.BouncyCastle.Crypto.Generators.SCrypt"/>
            Thanx to the legion of <see href="https://bouncycastle.org/" />
            </summary>
            <param name="keyBytes">keyBytes to hash encrypt</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
            <exception cref="T:System.ArgumentException"></exception>
        </member>
        <member name="T:EU.CqrXs.Crypt.Hash.Sha256Sum">
            <summary>
            Sha256Sum creates Sha256Sum of a file or stream or byte[] or string
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Hash.Sha256Sum.Hash(System.String,System.Boolean)">
            <summary>
            Hashes a file
            </summary>
            <param name="filePath">full(unc) path to file</param>
            <param name="showFileName">true for filename to add after hash, otherwise false</param>
            <returns>Sha512 hash of file with optional fileName at end</returns>
            <exception cref="T:System.ArgumentNullException">thrown, when filePath == null | filePath == "" | !File.Exists(filePath)</exception>        
        </member>
        <member name="T:EU.CqrXs.Crypt.Hash.Sha512Sum">
            <summary>
            Sha256Sum creates Sha512Sum of a file or stream or byte[] or string
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Hash.Sha512Sum.Hash(System.String,System.Boolean)">
            <summary>
            Hashes a file
            </summary>
            <param name="filePath">full(unc) path to file</param>
            <param name="showFileName">show filename beside hash</param>
            <returns>Sha512 hash of file with optional fileName at end</returns>
            <exception cref="T:System.ArgumentNullException">thrown, when filePath == null | filePath == "" | !File.Exists(filePath)</exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.Hash.Sha512Sum.Hash(System.String,System.String)">
            <summary>
            Hashes a string strng
            </summary>
            <param name="strng"><see cref="T:System.String">string strng</see></param>
            <param name="fileName">optional filename to add after hash</param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Hash.Sha512Sum.Hash(System.Byte[],System.String)">
            <summary>
            Hashes a Sha512 of byte[]
            </summary>
            <param name="bytes"><see cref="T:byte[]">byte[] bytes</see></param>
            <param name="fileName">optional fileName to end</param>
            <returns></returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Hash.Sha512Sum.Hash(System.IO.Stream,System.String)">
            <summary>
            Hashes a stream
            </summary>
            <param name="stream">stream strm</param>
            <param name="fileName">optional filename to add after hash</param>
            <returns>Sha512 hash with optional fileName</returns>
        </member>
        <member name="T:EU.CqrXs.Crypt.Msg.CContact">
            <summary>
            CContact derived from <see cref="T:EU.CqrXs.Crypt.Msg.CMsg"/> is a container for any Google or Outlook contact
            TODO: refactor it!
            </summary>    
        </member>
        <member name="M:EU.CqrXs.Crypt.Msg.CContact.#ctor">
            <summary>
            Parameterless default constructor
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Msg.CContact.#ctor(System.String,EU.CqrXs.Crypt.Msg.SerType)">
            <summary>
            ctor with serialized string and serialization type
            </summary>
            <param name="serialized">serialized or mime string</param>
            <param name="serType">serialized type</param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Msg.CContact.GetRowParams">
            <summary>
            <see cref="T:object[]">RowParams</see> gets an object array of row parameters to show in <see cref="T:System.Windows.Forms.DataGridView"/>
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Msg.CContact.ToJsonEncrypt(System.String,EU.CqrXs.Crypt.Msg.CContact,EU.CqrXs.Crypt.EnDeCoding.EncodingType,EU.CqrXs.Zip.ZipType)">
            <summary>
            ToJsonEncrypt
            </summary>
            <param name="serverKey">server key to encrypt</param>
            <param name="ccntct"><see cref="T:EU.CqrXs.Crypt.Msg.CContact"/> to encrypt and serialize</param>
            <param name="encoder"><see cref="T:EU.CqrXs.Crypt.EnDeCoding.EncodingType"/></param>
            <param name="zipType"><see cref="T:EU.CqrXs.Zip.ZipType"/></param>
            <returns>a serialized <see cref="T:System.String" /> of encrypted <see cref="T:EU.CqrXs.Crypt.Msg.CContact"/></returns>
            <exception cref="T:EU.CqrXs.Crypt.CException"></exception>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.Msg.CContact.FromJsonDecrypt(System.String,System.String,EU.CqrXs.Crypt.EnDeCoding.EncodingType,EU.CqrXs.Zip.ZipType)">
            <summary>
            FromJsonDecrypt
            </summary>
            <param name="serverKey">server key to decrypt</param>
            <param name="serialized">serialized string of <see cref="T:EU.CqrXs.Crypt.Msg.CContact"/></param>
            <param name="decoder"><see cref="T:EU.CqrXs.Crypt.EnDeCoding.EncodingType"/></param>
            <param name="zipType"><see cref="T:EU.CqrXs.Zip.ZipType"/></param>
            <returns>deserialized and decrypted <see cref="T:EU.CqrXs.Crypt.Msg.CContact"/></returns>
            <exception cref="T:EU.CqrXs.Crypt.CException">thrown, 
            when serialized string to decrypt and deserialize is either null or empty 
            or <see cref="T:EU.CqrXs.Crypt.Msg.CContact"/> can't be decrypted and deserialized.
            </exception>
        </member>
        <member name="T:EU.CqrXs.Crypt.Msg.CFile">
            <summary>
            CFile derived from <see cref="T:EU.CqrXs.Crypt.Msg.CMsg" /> represents any file in what ever filesystem.
            TODO: need to refactor!
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Msg.CFile.#ctor(System.String,EU.CqrXs.Crypt.Msg.SerType)">
            <summary>
            Constructor CqrFile from an json, xml or raw serialized plaintext
            </summary>
            <param name="plainText"></param>
            <param name="msgType"></param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Msg.CFile.#ctor(EU.CqrXs.Crypt.Msg.CFile)">
            <summary>
            CFile constructor with antoher <see cref="T:EU.CqrXs.Crypt.Msg.CFile"/> to clone
            </summary>
            <param name="cFile"><see cref="T:EU.CqrXs.Crypt.Msg.CFile"/> to clone</param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Msg.CFile.GetWebPage">
            <summary>
            Get Html Page embedding CqrFile
            </summary>
            <returns>html as string rendered</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Msg.CFile.GetFileNameContentLength">
            <summary>
            GetFileNameContentLength write <see cref="T:EU.CqrXs.Crypt.Msg.CFile"/> and  Data.Length
            </summary>
            <returns>CqrFileName + " [" + Data.Length + "]";</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Msg.CFile.ToJsonEncrypt(System.String,EU.CqrXs.Crypt.Msg.CFile@,EU.CqrXs.Crypt.EnDeCoding.EncodingType,EU.CqrXs.Zip.ZipType)">
            <summary>
            ToJsonEncrypt
            </summary>
            <param name="serverKey">server key to encrypt</param>        
            <param name="cfile"><see cref="T:EU.CqrXs.Crypt.Msg.CFile"/></param>
            <param name="encoder"><see cref="T:EU.CqrXs.Crypt.EnDeCoding.EncodingType"/></param>
            <param name="zipType"><see cref="T:EU.CqrXs.Zip.ZipType"/></param>
            <returns>serialized json string</returns>
            <exception cref="T:EU.CqrXs.Crypt.CException"></exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.Msg.CFile.FromJsonDecrypt(System.String,System.String,EU.CqrXs.Crypt.EnDeCoding.EncodingType,EU.CqrXs.Zip.ZipType)">
            <summary>
            FromJsonDecrypt
            </summary>
            <param name="serverKey">server key to decrypt</param>
            <param name="serialized">serialized string of <see cref="T:EU.CqrXs.Crypt.Msg.CFile"/></param>
            <returns>deserialized and decrypted <see cref="T:EU.CqrXs.Crypt.Msg.CFile"/></returns>
            <exception cref="T:EU.CqrXs.Crypt.CException">thrown, 
            when serialized string to decrypt and deserialize is either null or empty 
            or <see cref="T:EU.CqrXs.Crypt.Msg.CFile"/> can't be decrypted and deserialized.
            </exception>
        </member>
        <member name="T:EU.CqrXs.Crypt.Msg.CImage">
            <summary>
            CImage is a image derived from <see cref="T:EU.CqrXs.Crypt.Msg.CFile"/>
            <see cref="T:EU.CqrXs.Crypt.Msg.CImage"/> has almost same properties and some small mappings  as <see cref="T:EU.CqrXs.Crypt.Msg.CFile"/> 
            and additionally member functions for conversion or import from File or <see cref="T:System.Drawing.Image"/> entity:
            <see cref="M:EU.CqrXs.Crypt.Msg.CImage.ToDrawingBitmap"/> <see cref="M:EU.CqrXs.Crypt.Msg.CImage.FromDrawingImage(System.Drawing.Image,System.String)"/> <see cref="M:EU.CqrXs.Crypt.Msg.CImage.ToDrawingImage(EU.CqrXs.Crypt.Msg.CImage)"/> <see cref="M:EU.CqrXs.Crypt.Msg.CImage.ToFile(EU.CqrXs.Crypt.Msg.CImage)"/>
            TODO: refactor it
            </summary>
        </member>
        <member name="P:EU.CqrXs.Crypt.Msg.CImage.ImageFileName">
            <summary>
            File Name with extension of Image wraps <see cref="P:EU.CqrXs.Crypt.Msg.CFile.FileName"/>
            </summary>
        </member>
        <member name="P:EU.CqrXs.Crypt.Msg.CImage.ImageMimeType">
            <summary>
            Mime Type of Image
            </summary>
        </member>
        <member name="P:EU.CqrXs.Crypt.Msg.CImage.ImageData">
            <summary>
            byte[] of Image Raw Data wraps <see cref="P:EU.CqrXs.Crypt.Msg.CFile.Data"/>
            </summary>
        </member>
        <member name="P:EU.CqrXs.Crypt.Msg.CImage.ImageBase64">
            <summary>
            Base64 mime encoded string of raw data
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Msg.CImage.#ctor">
            <summary>
            Default empty constructor (needed for json serialize and deserialize)
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Msg.CImage.#ctor(System.String,System.Byte[])">
            <summary>
            Ctor with filename and byte[] data
            </summary>
            <param name="fileName"></param>
            <param name="data"></param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Msg.CImage.#ctor(System.String,System.String)">
            <summary>
            Ctor with filename and mime encoded base64 string
            </summary>
            <param name="fileName"></param>
            <param name="base64Image"></param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Msg.CImage.#ctor(System.Drawing.Image,System.String)">
            <summary>
            Ctor with <see cref="T:System.Drawing.Image"/> and fileName
            </summary>
            <param name="image"> <see cref="T:System.Drawing.Image"/>  <see cref="T:System.Drawing.Bitmap"/></param>
            <param name="fileName">fileName for the image,
            if fileName is null or empty
            then a name <see cref="M:EU.CqrXs.Util.Extensions.Area23DateTimeWithMillis(System.DateTime)"/></param> + "_image." + extension based mime type will be given
        </member>
        <member name="M:EU.CqrXs.Crypt.Msg.CImage.ToDrawingBitmap">
            <summary>
            ToDrawingBitmap converts this <see cref="T:EU.CqrXs.Crypt.Msg.CImage"/> to <see cref="T:System.Drawing.Bitmap"/>
            </summary>
            <returns>transformed see cref="System.Drawing.Bitmap"/></returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Msg.CImage.ToDrawingImage(EU.CqrXs.Crypt.Msg.CImage)">
            <summary>
            ToDrawingImage converts a <see cref="T:EU.CqrXs.Crypt.Msg.CImage"/> to a <see cref="T:System.Drawing.Image"/>
            </summary>
            <param name="cImage"><see cref="T:EU.CqrXs.Crypt.Msg.CImage"/> to convert</param>
            <returns>converted <see cref="T:System.Drawing.Image"/></returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Msg.CImage.FromDrawingImage(System.Drawing.Image,System.String)">
            <summary>
            FromDrawingImage converts a <see cref="T:EU.CqrXs.Crypt.Msg.CImage"/> from a <see cref="T:System.Drawing.Image"/>
            </summary>
            <param name="image"><see cref="T:System.Drawing.Image"/></param>
            <param name="imgName"><see cref="T:System.String">string imgName</see></param>
            <returns><see cref="T:EU.CqrXs.Crypt.Msg.CImage">converted CqrImage</see></returns>
        </member>
        <member name="T:EU.CqrXs.Crypt.Msg.CMsg">
            <summary>
            CMsg is basic message of encryptable / decryptable entities
            TODO: need to refactor soonly
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Msg.CMsg.#ctor">
            <summary>
            Parameterless constructor CMsg
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Msg.CMsg.#ctor(System.String,EU.CqrXs.Crypt.Msg.SerType)">
            <summary>
            this constructor requires a serialized or rawstring in msg
            </summary>
            <param name="serializedString">serialized string</param>
            <param name="msgArt">Serialization type</param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Msg.CMsg.#ctor(System.String,System.String,EU.CqrXs.Crypt.Msg.SerType,System.String)">
            <summary>
            this ctor requires a plainstring and serialize it in _SerializedMsg
            </summary>
            <param name="plainTextMsg">plain text message</param>
            <param name="hash"></param>
            <param name="msgArt"></param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Msg.CMsg.Cerialize">
            <summary>
            Serialize all CC classes to json
            </summary>
            <returns>json serialized string</returns>
        </member>
        <member name="T:EU.CqrXs.Crypt.Msg.CryptMsg`1">
            <summary>
            <see cref="T:EU.CqrXs.Crypt.Msg.CryptMsg`1"/> derived from <see cref="T:EU.CqrXs.Crypt.Msg.CMsg"/> is a generic crypt container, 
            where instanciated generic object from <typeparamref name="TC"/> will be serialized and encrypted.
            For decrypting containing generic object serialized crypted string will be decrypted and deserialized and mapped into
            TODO: refactoring of en-/decryption
            </summary>
            <typeparam name="TC">generic type parameter</typeparam>
        </member>
        <member name="M:EU.CqrXs.Crypt.Msg.CryptMsg`1.EncryptToJson(System.String,EU.CqrXs.Crypt.EnDeCoding.EncodingType,EU.CqrXs.Zip.ZipType)">
            <summary>
            Serialize <see cref="T:CSrvMsg{TC}"/> to Json Stting
            </summary>
            <returns>json serialized string</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Msg.CryptMsg`1.ToJsonEncrypt(System.String,EU.CqrXs.Crypt.Msg.CryptMsg{`0},EU.CqrXs.Crypt.EnDeCoding.EncodingType,EU.CqrXs.Zip.ZipType)">
            <summary>
            Serialize <see cref="T:EU.CqrXs.Crypt.Msg.CryptMsg`1"/> to Json Stting
            </summary>
            <returns>json serialized string</returns>
        </member>
        <member name="T:EU.CqrXs.Crypt.Msg.IMsgAble">
            <summary>
            interface for all en-/decryptable entities derived from <see cref="T:EU.CqrXs.Crypt.Msg.CMsg"/>
            </summary>
        </member>
        <member name="P:EU.CqrXs.Crypt.Msg.IMsgAble.Cerializer">
            <summary>
            <see cref="T:EU.CqrXs.Crypt.Msg.SerType"/> is serializing type, for now Json = 0x1000, Xml = 0x2000, maybe protbuf later
            </summary>
        </member>
        <member name="P:EU.CqrXs.Crypt.Msg.IMsgAble.Message">
            <summary>
            basic Message is needed for en-/decryption
            </summary>
        </member>
        <member name="P:EU.CqrXs.Crypt.Msg.IMsgAble.Hash">
            <summary>
            simple hash to know, if the pipe is matching
            </summary>
        </member>
        <member name="P:EU.CqrXs.Crypt.Msg.IMsgAble.Md5Hash">
            <summary>
            standard md5sum of bytes or message string
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Msg.IMsgAble.Cerialize">
            <summary>
            Serializes the current object to a string representation.
            </summary>
            <returns>A string that represents the serialized form of the object.</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Msg.IMsgAble.DeCerialize``1(System.String)">
            <summary>
            Deserializes the specified string to an object of type T.
            </summary>
            <typeparam name="T">The type of the object to deserialize to.</typeparam>
            <param name="serializedText">The serializedText string to deserialize. Cannot be null or empty.</param>
            <returns>An instance of type T deserialized from the serializedText string, or null if the input is null, empty, or cannot be
            deserialized to type T.</returns>
        </member>
        <member name="T:EU.CqrXs.Crypt.Msg.SerType">
            <summary>
            Serializer enumeration type with default to json
            </summary>
        </member>
        <member name="T:EU.CqrXs.Crypt.Msg.SerializationTypeExtension">
            <summary>
            Extension methods for enum <see cref="T:EU.CqrXs.Crypt.Msg.SerType"/>
            <see cref="M:EU.CqrXs.Crypt.Msg.SerializationTypeExtension.Cerialize``1(EU.CqrXs.Crypt.Msg.SerType,``0)"/>
            <see cref="M:EU.CqrXs.Crypt.Msg.SerializationTypeExtension.DeCerialize``1(EU.CqrXs.Crypt.Msg.SerType,System.String)"/>
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Msg.SerializationTypeExtension.Cerialize``1(EU.CqrXs.Crypt.Msg.SerType,``0)">
            <summary>
            Cerialize
            </summary>
            <typeparam name="T">class to serialize</typeparam>
            <param name="serType">cerialized type</param>
            <param name="t">instance to serialize</param>
            <returns>serialized string</returns>
        </member>
        <member name="T:EU.CqrXs.Net.NameService.DnsHelper">
            <summary>
            Dns Domain Name Service Helper
            </summary>
        </member>
        <member name="M:EU.CqrXs.Net.NameService.DnsHelper.GetHostEntryByHostName(System.String)">
            <summary>
            GetHostEntryByHostName gets an IPHostEntry for a dns hostname
            </summary>
            <param name="hostname">hostname</param>
            <returns><see cref="T:System.Net.IPHostEntry"/></returns>
        </member>
        <member name="M:EU.CqrXs.Net.NameService.DnsHelper.GetIpAddrsByHostName(System.String)">
            <summary>
            GetIpAddrsByHostName get all ip addresses except loopback for a dns hostname
            </summary>
            <param name="hostname">hostname</param>
            <returns><see cref="T:System.Collections.Generic.List`1">IEnumerable{IPAddress}</see></returns>
        </member>
        <member name="M:EU.CqrXs.Net.NameService.DnsHelper.GetHostNamesByHostName(System.String)">
            <summary>
            GetDnsHostNamesByHostName gets official reverse lookup hostname for a hostname
            </summary>
            <param name="hostname"></param>
            <returns><see cref="T:System.Collections.Generic.IList`1">IList{string}</see></returns>
        </member>
        <member name="T:EU.CqrXs.Net.NetworkAddresses">
            <summary>
            NetworkAddresses provides several members to get all local network addresses (except loopback)
            </summary>
        </member>
        <member name="M:EU.CqrXs.Net.NetworkAddresses.GetConnectedIpAddresses(System.Collections.Generic.List{System.Net.IPAddress})">
            <summary>
            GetConnectedIpAddresses gets connected IPAddress list.
            </summary>
            <param name="serverIps"><see cref="T:System.Collections.Generic.List`1"/></param>
            <returns><see cref="T:System.Collections.Generic.List`1"/></returns>
        </member>
        <member name="M:EU.CqrXs.Net.NetworkAddresses.GetConnectedIpAddressesAsync(System.Collections.Generic.List{System.Net.IPAddress})">
            <summary>
            GetConnectedIpAddressesAsync
            </summary>
            <param name="serverIps">serverIPs List to connect and verify, if connection is possible through</param>
            <returns><see cref="T:Task{List{IPAddress}}"/></returns>
        </member>
        <member name="M:EU.CqrXs.Net.NetworkAddresses.GetIpAddresses">
            <summary>
            GetIpAddresses gets all IPAddresses except loopback adapter
            </summary>
            <returns><see cref="T:System.Collections.Generic.IEnumerable`1"/></returns>
        </member>
        <member name="M:EU.CqrXs.Net.NetworkAddresses.GetIpAddresses(System.Net.Sockets.AddressFamily)">
            <summary>
            GetIpAddresses returns all IPAddresses for a certain <see cref="T:System.Net.Sockets.AddressFamily">AddressFamily</see>
            </summary>
            <param name="addressFamily">only <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork"/>.
            <see cref="F:System.Net.Sockets.AddressFamily.InterNetworkV6">AddressFamily.InterNetworkV6</see> and 
            <seealso cref="F:System.Net.Sockets.AddressFamily.Unix"/> are supported.</param>
            <returns><see cref="T:System.Collections.Generic.IList`1"/></returns>
            <exception cref="T:System.Net.ProtocolViolationException"></exception>
        </member>
        <member name="M:EU.CqrXs.Net.NetworkAddresses.GetMacAddress">
            <summary>
            GetMacAddress returns Mac Address
            </summary>
            <returns><see cref="T:System.Collections.Generic.IList`1"/></returns>
        </member>
        <member name="T:EU.CqrXs.Net.WebHttp.HttpClientRequest">
            <summary>
            HttpClientRequest encapsulation
            </summary>
        </member>
        <member name="M:EU.CqrXs.Net.WebHttp.HttpClientRequest.GetResponseByUrl(System.String)">
            <summary>
            Gets an async <see cref="T:System.Threading.Tasks.Task`1"/> for an url
            </summary>
            <param name="url">url to fetch</param>
            <returns><see cref="T:System.Threading.Tasks.Task`1"/></returns>
        </member>
        <member name="M:EU.CqrXs.Net.WebHttp.HttpClientRequest.PostUrlMsg(System.String,System.String)">
            <summary>
            Posts a message to the specified <see cref="T:System.String">url</see>
            </summary>
            <param name="url">url to connect</param>
            <param name="msg">message to post</param>
            <returns>true on http(s) POST success</returns>
        </member>
        <member name="M:EU.CqrXs.Net.WebHttp.HttpClientRequest.GetClientIP(System.String)">
            <summary>
            Gets the external gateway or host client IP address
            </summary>
            <param name="urlR">default: https://area23.at/net/R.aspx</param>
            <returns>IP Address of client host or in case of SNAT IP Address of 1st internet provider gateway of client host</returns>
            <exception cref="T:System.InvalidOperationException"></exception>
        </member>
        <member name="T:EU.CqrXs.Net.WebHttp.TcpClientWebRequest">
            <summary>
            <see cref="T:EU.CqrXs.Net.WebHttp.TcpClientWebRequest"/> performs web request raw on tcp socket 
            </summary>
        </member>
        <member name="M:EU.CqrXs.Net.WebHttp.TcpClientWebRequest.MakeWebRequest(System.Net.IPAddress,System.Collections.Generic.List{System.Net.IPAddress}@,System.Int32)">
            <summary>
            MakeWebRequest
            </summary>
            <param name="serverIp">server ip address</param>
            <param name="clientIPs"></param>
            <param name="serverPort">server port (default 80)</param>
            <returns>client address as string</returns>
        </member>
        <member name="M:EU.CqrXs.Net.WebHttp.TcpClientWebRequest.MakeWebRequestAsync(System.Net.IPAddress,System.Int32)">
            <summary>
            MakeWebRequestAsync
            </summary>
            <param name="serverIp">server ip address</param>
            <param name="serverPort">server port (default 80)</param>
            <returns><see cref="T:System.Threading.Tasks.Task`1"/></returns>
        </member>
        <member name="T:EU.CqrXs.Net.WebHttp.WebClientRequest">
            <summary>
            WebClientRequest implements a static WebClient Request via <see cref="T:System.Net.WebClient"/>
            and mainly provides
            <see cref="M:EU.CqrXs.Net.WebHttp.WebClientRequest.ExternalClientIpFromServer(System.String,System.Text.Encoding)"/>
            <see cref="!:LatestAtImages(string)"/>
            via basic static methods
            <see cref="M:EU.CqrXs.Net.WebHttp.WebClientRequest.DownloadString(System.String,System.String,System.String,System.Text.Encoding)"/>
            <see cref="M:EU.CqrXs.Net.WebHttp.WebClientRequest.PostMessage(System.String,System.String,System.String,System.String,System.Text.Encoding)"/>
            <see cref="M:EU.CqrXs.Net.WebHttp.WebClientRequest.DownloadBytes(System.String,System.String,System.Text.Encoding)"/>
            funtionality.
            </summary>
        </member>
        <member name="M:EU.CqrXs.Net.WebHttp.WebClientRequest.#cctor">
            <summary>
            static constructor
            </summary>
        </member>
        <member name="M:EU.CqrXs.Net.WebHttp.WebClientRequest.DownloadString(System.String,System.String,System.String,System.Text.Encoding)">
            <summary>
            DownloadString downloads a string from an uri
            </summary>
            <param name="url"></param>
            <param name="secretKey"></param>
            <param name="keyIv"></param>
            <param name="encoding"><see cref="T:System.Text.Encoding"/></param>
            <returns>downloaded string</returns>
        </member>
        <member name="M:EU.CqrXs.Net.WebHttp.WebClientRequest.DownloadBytes(System.String,System.String,System.Text.Encoding)">
            <summary>
            DownloadBytes
            </summary>
            <param name="url"><see cref="T:string">uri</see></param>
            <param name="filePath"><see cref="T:string">file path to write downloaded image</see></param>
            <param name="encoding"></param>
            <returns><see cref="T:FileInfo?" /> of downloaded image file</returns>
        </member>
        <member name="M:EU.CqrXs.Net.WebHttp.WebClientRequest.PostMessage(System.String,System.String,System.String,System.String,System.Text.Encoding)">
            <summary>
            PostMessage posts message via <see cref="M:System.Net.WebClient.UploadString(System.String,System.String)"/>
            </summary>
            <param name="msg"></param>
            <param name="url"></param>
            <param name="hostname"></param>
            <param name="serverIp"></param>
            <param name="encoding"></param>
            <returns></returns>
        </member>
        <member name="M:EU.CqrXs.Net.WebHttp.WebClientRequest.ExternalClientIpFromServer(System.String,System.Text.Encoding)">
            <summary>
            ExternalClientIpFromServer gets external network ip for client from server
            </summary>
            <param name="url">default: https://cqrxs.eu/net/R.aspx https://area23.at/net/R.aspx</param>
            <param name="encoding"><see cref="T:System.Text.Encoding"/></param>
            <returns>external official gateway <see cref="T:System.Net.IPAddress">ip address</see> of client</returns>
        </member>
        <member name="T:EU.CqrXs.Properties.Resource">
            <summary>
              A strongly-typed resource class, for looking up localized strings, etc.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.ResourceManager">
            <summary>
              Returns the cached ResourceManager instance used by this class.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.Culture">
            <summary>
              Overrides the current thread's CurrentUICulture property for all
              resource lookups using this strongly typed resource class.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.app_name">
            <summary>
              Looks up a localized string similar to Area23.At.Framework.Core.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.arrow_right_0">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.arrow_right_1">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.arrow_right_2">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.arrow_right_3">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.arrow_right_4">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.arrow_right_5">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.arrow_right_6">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.arrow_right_7">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.arrow_right_9">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.arrow_right_a">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.arrow_right_b">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.arrow_right_c">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.arrow_right_d">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.arrow_right_e">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.arrow_right_f">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.Blank640x96">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.BlankDecrypt_640x108">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.BlankEncrypt_640x108">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.BlankEncrypt_640x96">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.block_arrow_right_compress">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.block_arrow_right_zip">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.build_with">
            <summary>
              Looks up a localized string similar to VisualStudio 2026 C# 10.0.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.compress_right_end_0">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.encoding_right_0">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.encoding_right_end_0">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.filesymbol">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.fortune_u8">
             <summary>
               Looks up a localized string similar to Debian Hint #1: You can report a bug in a package with the &apos;reportbug&apos; command,
            which is available in the reportbug package, either from the command-line or
            with the new graphical frontend (available running &apos;reportbug --ui gtk&apos; or in
            the menu).
            %
            Debian Hint #2: You can use &apos;dpkg-reconfigure &lt;package&gt;&apos; to change the
            answers you gave to the questions asked when you first installed a package.
            The &apos;configure-debian&apos; package provides a unified front end for doing this,
            as well.
            %
            Debian Hint #3: You  [rest of string was truncated]&quot;;.
             </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.github_uri">
            <summary>
              Looks up a localized string similar to https://github.com/heinrichelsigan/area23.at/.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.help_text">
             <summary>
               Looks up a localized string similar to &lt;h1&gt;Area23.At.Framework.Library&lt;/h1&gt;
            &lt;p&gt;C# .Net Samples for apache2 mod_mono
            by Heinrich Elsigan (&lt;a href=&quot;mailto:he@area23.at&quot;&gt;heinrich.elsigan@area23.at&lt;/a&gt;).
            &lt;/p&gt;
            &lt;hr /&gt;
            Code is open source under GPL 3 and publicly accessible via &lt;a href=&quot;https://github.com/&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt; repository &lt;a href=&quot;https://github.com/heinrichelsigan/area23.at/&quot; target=&quot;_blank&quot;&gt;github.com/heinrichelsigan/area23.at&lt;/a&gt;.
            &lt;br /&gt;.
             </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.ImageAesArrow">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.ImageAesArrowHover">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.ImageClickToUpload">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.ImageDeCrypt">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.ImageEnCrypt">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.ImageFile">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Properties.Resource.ImageHash">
            <summary>
              Looks up a localized resource of type System.Drawing.Bitmap.
            </summary>
        </member>
        <member name="T:EU.CqrXs.Util.Area23EventArgs`1">
            <summary>
            Area23EventArgs generic event args
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="P:EU.CqrXs.Util.Area23EventArgs`1.GenericTData">
            <summary>
            <typeparamref name="T">geneneric T type or class</typeparamref>
            </summary>
        </member>
        <member name="M:EU.CqrXs.Util.Area23EventArgs`1.#ctor(`0)">
            <summary>
            ctor Area23EventArgs
            </summary>
            <param name="genericTData">generic T data</param>
        </member>
        <member name="T:EU.CqrXs.Util.Area23Log">
            <summary>
            simple static logger via NLog
            </summary>
        </member>
        <member name="P:EU.CqrXs.Util.Area23Log.Logger">
            <summary>
            Get the Logger
            </summary>
        </member>
        <member name="P:EU.CqrXs.Util.Area23Log.CheckedToday">
            <summary>
            Checked today if logfiles and other needed resources exist
            </summary>
        </member>
        <member name="P:EU.CqrXs.Util.Area23Log.LogFile">
            <summary>
            LogFile
            </summary>
        </member>
        <member name="M:EU.CqrXs.Util.Area23Log.#cctor">
            <summary>
            private Singelton constructor
            </summary>
        </member>
        <member name="M:EU.CqrXs.Util.Area23Log.InitLog(System.String)">
            <summary>
            InitLog init Log configuration
            </summary>
            <param name="appName">application name</param>
        </member>
        <member name="M:EU.CqrXs.Util.Area23Log.Log(System.String,System.String)">
            <summary>
            Log - static logging method
            </summary>
            <param name="msg">message to log</param>
            <param name="appName">application name</param>
        </member>
        <member name="M:EU.CqrXs.Util.Area23Log.Log(System.Exception,System.String)">
            <summary>
            Log - static logging method
            </summary>
            <param name="exLog"><see cref="T:System.Exception"/> to log</param>
            <param name="appName">application name</param>
        </member>
        <member name="M:EU.CqrXs.Util.Area23Log.LogOriginMsg(System.String,System.String,System.Int32)">
            <summary>
            Log origin with message to NLog
            </summary>
            <param name="origin">origin of message</param>
            <param name="message">enabler message to log</param>
            <param name="level">log level: 0 for Trace, 1 for Debug, ..., 4 for Error, 5 for Fatal</param>
        </member>
        <member name="M:EU.CqrXs.Util.Area23Log.LogOriginMsgEx(System.String,System.String,System.Exception,System.Int32)">
            <summary>
            Log origin with message and thrown exception to NLog
            </summary>
            <param name="origin">origin of message</param>
            <param name="message">logging <see cref="T:System.String">string message</see></param>
            <param name="ex">logging <see cref="T:System.Exception">Exception ex</see></param>
            <param name="level"><see cref="T:System.Int32">int log level</see>: 0 for Trace, 1 for Debug, ..., 4 for Error, 5 for Fatal</param>
        </member>
        <member name="T:EU.CqrXs.Util.Constants">
            <summary>
            static Constants including static application settings
            </summary>
        </member>
        <member name="P:EU.CqrXs.Util.Constants.AppLogFile">
            <summary>
            AppLogFile - logfile with <see cref="M:EU.CqrXs.Util.Extensions.Area23Date(System.DateTime)"/> prefix
            </summary>
        </member>
        <member name="P:EU.CqrXs.Util.Constants.Locale">
            <summary>
            Culture Info from HttpContext.Current.Request.Headers[ACCEPT_LANGUAGE]
            </summary>
        </member>
        <member name="P:EU.CqrXs.Util.Constants.DateArea23Seconds">
            <summary>
            UT DateTime @area23.at including seconds
            </summary>
        </member>
        <member name="P:EU.CqrXs.Util.Constants.DateArea23">
            <summary>
            UTC DateTime Formated
            </summary>
        </member>
        <member name="P:EU.CqrXs.Util.Constants.DateFile">
            <summary>
            UTC DateTime File Prefix
            </summary>
        </member>
        <member name="M:EU.CqrXs.Util.Constants.AppSettingsValueByKey(System.String)">
            <summary>
            AppSettingsValueByKey 
            </summary>
            <param name="key">key to lookup up in AppSettings key value collection</param>
            <returns><see cref="T:System.String"/> AppSettingsValue</returns>
        </member>
        <member name="T:EU.CqrXs.Util.Extensions">
            <summary>
            Static extension methods Area23.At.Framework.Core
            
            </summary>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.ToInt(System.Char)">
            <summary>
            Converts the specified character to its corresponding integer value, supporting decimal digits and
            alphabetic characters.
            </summary>
            <remarks>This method treats both uppercase and lowercase letters as values from 10 to 35,
            following the convention used in base-36 conversions. For example, 'A' and 'a' both return 10, 'B' and 'b'
            return 11, and so on.</remarks>
            <param name="c">The character to convert. Can be a digit ('0'-'9') or a letter ('A'-'Z', 'a'-'z').</param>
            <returns>An integer representing the value of the character: 0-9 for digits, 10-35 for letters ('A'-'Z' or 'a'-'z').
            Returns -1 if the character is not a digit or letter.</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.IsRoundNumber(System.Double)">
            <summary>
            <see cref="T:System.Double"/>.IsRoundNumber() extension methods: checks, if a double is a round number
            </summary>
            <param name="d">double to check</param>
            <returns>true, if it's integer number</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.ToLong(System.Double)">
            <summary>
            <see cref="T:System.Double"/>.ToLong() extension methods: converts a double to a long <see cref="T:System.Int64"/>
            </summary>
            <param name="d"></param>
            <returns></returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.IsNan(System.Double)">
            <summary>
            <see cref="T:System.Double"/>.IsNan() extension methods: checks, if a double is not a number
            </summary>
            <param name="d">double to check</param>
            <returns>true, if dounble is not a number, otherwise false</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.Area23Date(System.DateTime)">
            <summary>
            <see cref="T:System.DateTime"/>.Area23Date() extension method: formats <see cref="T:System.DateTime"/>.ToString("yyyy-MM-dd")
            </summary>
            <param name="dateTime"><see cref="T:System.DateTime"/></param>
            <returns>formatted date <see cref="T:System.String"/></returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.Area23DateTime(System.DateTime)">
            <summary>
            <see cref="T:System.DateTime"/>.Area23DateTime() extension method: formats <see cref="T:System.DateTime"/>.ToString("yyyy-MM-dd HH:mm")
            </summary>
            <param name="dateTime"><see cref="T:System.DateTime"/></param>
            <returns>formatted date time <see cref="T:System.String"/> </returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.Area23DateTimeWithSeconds(System.DateTime)">
            <summary>
            <see cref="T:System.DateTime"/>.Area23DateTimeWithSeconds() extension method: formats <see cref="T:System.DateTime"/>.ToString("yyyy-MM-dd_HH:mm:ss")
            </summary>
            <param name="dateTime">d</param>
            <returns><see cref="T:System.String"/> formatted date time including seconds</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.Area23DateTimeWithMillis(System.DateTime)">
            <summary>
            <see cref="T:System.DateTime"/>.Area23DateTimeWithMillis() extension method: formats <see cref="T:System.DateTime"/>.ToString("yyyyMMdd_HHmmss_milis")
            </summary>
            <param name="dateTime"><see cref="T:System.DateTime"/></param>
            <returns>formatted date time <see cref="T:System.String"/> </returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.ToByteArray(System.IO.Stream)">
            <summary>
            <see cref="T:System.IO.Stream"/>.ToByteArray() extension method: converts <see cref="T:System.IO.Stream"/> to <see cref="T:byte[]"/> array
            </summary>
            <param name="stream"><see cref="T:System.IO.Stream"/> which static methods are now extended</param>
            <returns>binary <see cref="T:byte[]">byte[] array</see></returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.GetImageMimeType(System.Byte[])">
            <summary>
            <see cref="T:byte[]"/>.GetImageMimeType() extension method: auto detect mime type of an image inside an binary byte[] array
            via <see cref="M:System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders"/> <seealso cref="M:System.Drawing.Imaging.ImageCodecInfo.GetImageDecoders"/>
            </summary>
            <param name="bytes">binary <see cref="T:byte[]">byte[] array</see></param>
            <returns></returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.ArrayIndexOf(System.Byte[],System.Byte)">
            <summary>
            <see cref="T:byte[]"/>.ArrayIndexOf(byte value) extension method: gets the first index of specified byte value
            </summary>
            <param name="bytes">byte[] to search</param>
            <param name="value">byte to find</param>
            <returns>index in array if found, otherwise -1</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.ToFile(System.Byte[],System.String,System.String,System.String)">
            <summary>
            <see cref="T:byte[]"/>.ToFile(string filePath, string fileName, string fext) extension method: writes a byte array to a file
            </summary>
            <param name="bytes"><see cref="T:byte[]"/></param>
            <param name="filePath">filesystem path</param>
            <param name="fileName">filename</param>
            <param name="fext">file extension</param>
            <returns>full file system path to new written file in case of success, on error simply null</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.ToHexString(System.Byte[],System.Boolean)">
            <summary>
            <see cref="T:byte[]"/>.ToHexString() extension method: converts byte[] to HexString
            </summary>
            <param name="bytes">Array of <see cref="T:System.Byte"/></param>
            <param name="UPPERCASE">bool default true, UPPERCASE LETTER CHARS ABCDEF</param>
            <returns>hexadecimal string</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.FindBytes(System.Byte[],System.Byte[],System.Int32)">
            <summary>
            <see cref="T:byte[]"/>.FindBytes extension method: searches hayStack for the first occurence of needle, 
            FindBytes uses static equivalent <see cref="M:EU.CqrXs.Util.Extensions.BytesBytes(System.Byte[],System.Byte[],System.Int32)"/> 
            </summary>
            <param name="hayStack">byte[] of haystack to search through</param>
            <param name="needle">byte[] of needle to find</param>        
            <param name="matchBytes">match the only first matchBytes of needle, -1 for all bytes</param>
            <returns>index of first byte of matching needle in haystack</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.BytesBytes(System.Byte[],System.Byte[],System.Int32)">
            <summary>
            BytesBytes static method: searches hayStack for the first occurence of needle, 
            BytesBytes was inspired by unix posix c function strstr 
            </summary>
            <param name="hayStack">byte[] of haystack to search through</param>
            <param name="needle">byte[] of needle to find</param>        
            <param name="matchBytes">match the only first matchBytes of needle, -1 for all bytes</param>
            <returns>index of first byte of matching needle in haystack</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.TarBytes(System.Byte[],System.Byte[][])">
            <summary>
            <see cref="T:byte[]"/>.TarBytes extension method: tars 
            </summary>
            <param name="baseBytes">base byte array</param>
            <param name="bytesToAdd">more byte arrays</param>
            <returns>large tared byte array</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.TarBytes(System.Byte[][])">
            <summary>
            TarBytes static method: tars all parameters of bytes array to one large byte array
            </summary>
            <param name="bytesToAdd">one up to many byte arrays</param>
            <returns>large tared byte array</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.CompareBytes(System.Byte[],System.Byte[],System.Boolean)">
            <summary>
            Compare bytes extension Method
            </summary>
            <param name="baseBytes">base bytes</param>
            <param name="bytesToCompare">bytes to compare</param>
            <param name="partially">true: only compare less then half of bytes, false: all byter</param>
            <returns>something like Levenstein Distanz</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.FromHexString(System.String)">
            <summary>
            <see cref="T:System.String"/>.FromHexString() extension method: converts hexadecimal string to byte[]
            </summary>
            <param name="hexString">hexadecimal string</param>
            <returns><see cref="T:byte[]">byte[]</see> Array of <see cref="T:byte[]"/></returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.Base64ToStream(System.String)">
            <summary>
            <see cref="T:System.String"/>.Base64ToStream() extension method: converts base64 string to stream
            </summary>
            <param name="base64">base64 encoded string</param>
            <returns>MemoryStream</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.Base64ToImage(System.String)">
            <summary>
            <see cref="T:System.String"/>.Base64ToImage() extension method: converts base64 string to an image
            </summary>
            <param name="base64">base64 encoded string</param>
            <returns>Image?</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.FromHtmlToColor(System.String)">
            <summary>
            <see cref="T:System.String"/>.FromHtmlToColor() extension methods: transforms hex #rrggbb string into <see cref="T:System.Drawing.Color"/>
            </summary>
            <param name="htmlRGBString"><see cref="T:System.String"/> to transform</param>
            <returns><see cref="T:System.Drawing.Color"/></returns>
            <exception cref="T:System.ArgumentException">invalid argument exception, in case of malformatted string</exception>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.GetExtensionFromFileString(System.String)">
            <summary>
            <see cref="T:System.String"/>.<see cref="M:EU.CqrXs.Util.Extensions.GetExtensionFromFileString(System.String)"/> Extension method
            </summary>
            <param name="fileName">fileName to process</param>
            <returns>extension of fileName</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.GetSubStringByPattern(System.String,System.String,System.Boolean,System.String,System.String,System.Boolean,System.StringComparison)">
            <summary>
            <see cref="T:System.String"/>.<see cref="M:EU.CqrXs.Util.Extensions.GetSubStringByPattern(System.String,System.String,System.Boolean,System.String,System.String,System.Boolean,System.StringComparison)"/> Extension method 
            gets a substring beginning with patternStart and ending with patternEnd
            </summary>
            <param name="main">string to transform</param>
            <param name="patternStart">start pattern for substring, 
            if <see cref="M:System.String.Contains(System.String,System.StringComparison)">main.Contains(patternStart, comparasionType)</see>,
            so that int firstIndex = <see cref="M:System.String.IndexOf(System.String)">main.IndexOf(patternStart)</see> >= 0,
            then substring will start at <see cref="M:System.String.Substring(System.Int32)">main.Substring(firstIndex)</see>
            </param>
            <param name="firstIndex">default <see cref="F:System.Boolean.TrueString"/>, 
            if <see cref="F:System.Boolean.TrueString"/>, then first occurence in main <see cref="M:System.String.IndexOf(System.String)">main.IndexOf(patternStart)</see> will be executed, 
            otherwise if <see cref="F:System.Boolean.FalseString"/>, then <see cref="M:System.String.LastIndexOf(System.String)">main.LastIndexOf(patternStart)</see> will be executed.
            </param>
            <param name="markStartEnd">if <see cref="M:System.String.IsNullOrEmpty(System.String)">!string.IsNullOrEmpty(markStartEnd)</see> 
            then start position of substring will be set to <see cref="M:System.String.IndexOf(System.String)">string.IndexOf(markStartEnd)</see>
            </param>
            <param name="patternEnd">end pattern for substring, <see cref="M:System.String.LastIndexOf(System.String)">main.IndexOf(patternEnd)</see></param>
            <param name="lastIndex">default <see cref="F:System.Boolean.FalseString"/>
            if <see cref="F:System.Boolean.TrueString"/>, then last occurence <see cref="M:System.String.LastIndexOf(System.String)">main.LastIndexOf(patternEnd)</see> will be executed,
            otherwise if <see cref="F:System.Boolean.FalseString"/>, then first occurence in main <see cref="M:System.String.IndexOf(System.String)">main.IndexOf(patternEnd)</see> will be executed. 
            </param>
            <param name="comparasionType">
            <see cref="T:System.StringComparison">comparasionType</see> is set default to <see cref="F:System.StringComparison.CurrentCulture"/>
            </param>
            <returns><see cref="T:System.String">substring</see>, if no substring could be extracted, then <see cref="F:System.String.Empty"/></returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.ToLogMsg(System.Exception)">
            <summary>
            <see cref="T:System.Exception"/>.ToLogMsg() extension method: formats an exception to a well formatted logging message
            </summary>
            <param name="exc">the <see cref="T:System.Exception">exception</see></param>
            <returns><see cref="T:System.String">logMsg</see></returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.FromHtml(System.Drawing.Color,System.String)">
            <summary>
            <see cref="T:System.Drawing.Color"/>.FromHtml(string hex) extension method: gets color from hexadecimal rgb string html standard
            </summary>
            <param name="color">System.Drawing.Color.FromHtml(string hex) extension method</param>
            <param name="hex">hexadecimal rgb string with starting #</param>
            <returns>Color, that was defined by hexadecimal html standarized #rrggbb string</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.FromXrgb(System.Drawing.Color,System.String)">
            <summary>
            <see cref="T:System.Drawing.Color"/>.FromXrgb(string hex) extension method: gets color from hexadecimal rgb string
            </summary>
            <param name="color">System.Drawing.Color.FromXrgb(string hex) extension method</param>
            <param name="hex">hexadecimal rgb string with starting #</param>
            <returns>Color, that was defined by hexadecimal rgb string</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.FromRGB(System.Drawing.Color,System.Byte,System.Byte,System.Byte)">
            <summary>
            <see cref="T:System.Drawing.Color"/>.FromRGB(byte r, byte g, byte b) extension method: gets color from R G B
            </summary>
            <param name="color">System.Drawing.Color.FromXrgb(string hex) extension method</param>
            <param name="r">red byte</param>
            <param name="g">green byte</param>
            <param name="b">blue byte</param>
            <returns>Color, that was defined by hexadecimal rgb string</returns>
            <exception cref="T:System.ArgumentException"></exception>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.ToXrgb(System.Drawing.Color)">
            <summary>
            <see cref="T:System.Drawing.Color"/>.ToXrgb() extension method: converts current color to hex string 
            </summary>
            <param name="color">current color</param>
            <returns>hexadecimal #rrGGbb string with leading # character</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.IsInLevenSteinDistance(System.Drawing.Color,System.Drawing.Color,System.Int32)">
            <summary>
            <see cref="T:System.Drawing.Color"/>.IsInLevenSteinDistance(Color colorCompare) extension method: finds out, if colorSrc and colorCompare are inside Levenstein distance
            </summary>
            <param name="colorSrc">source <see cref="T:System.Drawing.Color"/></param>
            <param name="colorCompare"><see cref="T:System.Drawing.Color"/> to compare with</param>
            <param name="levenSteinDelta">the absolute distance between to colors to tolerate</param>
            <returns>true, if both colors are inside Levenstein distance</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.SaveRawToMemoryStream(System.Drawing.Image,System.Drawing.Imaging.ImageFormat,System.Nullable{System.Guid}@)">
            <summary>
            <see cref="T:System.Drawing.Image"/>.SaveRawToMemoryStream(ImageFormat imageFormat, out Guid? g) extension method: 
            saves an Image to <see cref="T:System.IO.MemoryStream"/> and return <see cref="T:System.Guid"/> of <see cref="T:System.Drawing.Imaging.ImageFormat"/> as out parameter
            </summary>
            <param name="img"><see cref="T:System.Drawing.Image"/> to be processed by Exentsion Method</param>
            <param name="imageFormat"><see cref="T:System.Drawing.Imaging.ImageFormat"/></param>
            <param name="g"><see cref="T:System.Guid">out Guid g</see></param>
            <returns><see cref="T:System.IO.MemoryStream"/></returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.ToByteArray(System.Drawing.Image)">
            <summary>
            <see cref="T:System.Drawing.Image"/>.ToByteArray() extension method: converts <see cref="T:System.Drawing.Image"/> to byte array
            </summary>
            <param name="img">this <see cref="T:System.Drawing.Image"/></param>
            <returns><see cref="T:byte[]?"/> array</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.ToBase64(System.Drawing.Image)">
            <summary>
            <see cref="T:System.Drawing.Image"/>.ToBase64() extension method: converts <see cref="T:System.Drawing.Image"/> to base64 string
            </summary>
            <param name="img">this <see cref="T:System.Drawing.Image"/></param>
            <returns>base64 encoded <see cref="T:string?"/></returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.IsValidXml(System.String)">
            <summary>
            IsValidXml extension method, that verifies if a string is a valid xml serialization
            </summary>
            <param name="xml">this <see cref="T:System.String">string xml</see> to xml validate</param>
            <returns>true, if it's a valid serialized xml string, otherwise false</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.IsValidJson(System.String)">
            <summary>
            Extension Method, that verifies if a string is a valid json serialization
            </summary>
            <param name="strInput">this <see cref="T:System.String">string input</see> to json validate</param>
            <returns>true, if it's a valid serialized json string, otherwise false</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.ReverseToString``1(System.Collections.Generic.Stack{``0})">
            <summary>
            <see cref="T:System.Collections.Generic.Stack`1"/>.ReverseToString<typeparamref name="T"/> extension method: reverses a objects in a stack to a string
            </summary>      
            <typeparam name="T">type parameter for generic <see cref="T:System.Collections.Generic.Stack`1"/></typeparam>
            <param name="stack">a generic  <see cref="T:System.Collections.Generic.Stack`1">Stack</see></param>  
            <returns>a string concatenation of reversed (fifoed) stack</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.SwapTPositions``1(``0[],System.Int32,System.Int32,System.Boolean)">
            <summary>
            SwapTPositions&lt;<typeparamref name="T"/>&gt;(this <typeparamref name="T"/>[] tarray, .. extensions method
            Swaps values of two positions inside a generic Array
            </summary>
            <typeparam name="T"></typeparam>
            <param name="tarray">generic array</param>
            <param name="posA">position A of array</param>
            <param name="posB">position B of array</param>
            <param name="exceptionOnNullable">if indices points to null value field, throw exception</param>
            <returns>swapped T generic array</returns>
            <exception cref="T:System.ArgumentException"></exception>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.ArrayIndexOf``1(``0[],``0,System.Boolean)">
            <summary>
            ArrayIndexOf{T} generic extension to find the first or last occurence of a T value in T[] tarray
            </summary>
            <typeparam name="T"></typeparam>
            <param name="tarray">generic T array</param>
            <param name="tvalue">T value to find</param>
            <param name="fromStart">if true, begin search at start (default), if false begin searching from end to start</param>
            <returns>if found, first or last index postition of Tvalue, if not found -1</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.FirstIndexOf``1(``0[],``0)">
            <summary>
            FirstIndexOf{T} generic search in a T array from starting at begin as usual
            </summary>
            <typeparam name="T"></typeparam>
            <param name="tarray">generic T array</param>
            <param name="tvalue">generic T value to find</param>
            <returns>if found, first  index of occurence of T value, if not found -1</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.LastIndexOf``1(``0[],``0)">
            <summary>
            LastIndexOf{T} generic search in a T array from starting at end
            </summary>
            <typeparam name="T"></typeparam>
            <param name="tarray">generic T array</param>
            <param name="tvalue">generic T value to find</param>
            <returns>if found, last index of occurence of T value, if not found -1</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.IndicesOf``1(``0[],``0)">
            <summary>
            IndicesOf{T} generic search that returns all indices of occurence of T value inside T array
            </summary>
            <typeparam name="T"></typeparam>
            <param name="tarray">generic T arreay</param>
            <param name="tvalue">T value to find</param>
            <returns>is tarray is null, null, if not fount an empty index array int[0], else inidices array int[]</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.IsPermAgainCryptFile(System.String)">
            <summary>
            IsPermAgainCryptFile 
            </summary>
            <param name="fileName">file name to parse</param>
            <returns>
                true, when looking like perm again crypt file name,
                false, when normal standard extension
            </returns>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.StripCipherPipeFromFileName(System.String,EU.CqrXs.Crypt.Cipher.CipherPipe@)">
            <summary>
            Extension <see cref="T:System.String"/>.StripCipherPipeFromFileName(out CipherPipe? cipherPipe)
            looks if a filename is <see cref="M:EU.CqrXs.Util.Extensions.IsPermAgainCryptFile(System.String)"/> and if true,
            extracts PipeString out of filename and creates the corresponding pipe.
            </summary>
            <param name="fileName">file name to examine</param>
            <param name="cipherPipe">out parameter for <see cref="T:EU.CqrXs.Crypt.Cipher.CipherPipe"/></param>
            <returns>stripped filename by CipherPipe PermAgainCrypt characters</returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.StripSecureCipherPipeFromFileName(System.String,EU.CqrXs.Crypt.Cipher.Symmetric.SecureCipherPipe@)">
            <summary>
            Extension <see cref="T:System.String"/>.StripSecureCipherPipeFromFileName(out SecureCipherPipe? secCipherPipe)
            looks if a filename is <see cref="M:EU.CqrXs.Util.Extensions.IsPermAgainCryptFile(System.String)"/> and if true,
            extracts PipeString out of filename and creates the corresponding pipe.
            </summary>
            <param name="fileName">file name to examine</param>
            <param name="secCipherPipe">out parameter for <see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.SecureCipherPipe"/></param>
            <returns>stripped filename by CipherPipe PermAgainCrypt characters</returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:EU.CqrXs.Util.Extensions.StripCiphersInFileName(System.String)">
            <summary>
            Extension <see cref="T:System.String"/>.StripCiphersInFileName() 
            strips all <see cref="T:EU.CqrXs.Crypt.Cipher.CipherEnum"/> and 
            <seealso cref="!:SymmCipherEnum"/> characters
            from current string.       
            </summary>
            <param name="fileName"><see cref="T:System.String"/> with extension</param>
            <returns>stripped string</returns>
        </member>
        <member name="T:EU.CqrXs.Util.JsonHelper">
            <summary>
            JsonHelper class for reading and writing json serialized store file.
            </summary>
        </member>
        <member name="T:EU.CqrXs.Util.LibPaths">
            <summary>
            LibPaths provides filesystem paths and directories for different needed locations, e.g. log + config files
            </summary>
        </member>
        <member name="M:EU.CqrXs.Util.LibPaths.#cctor">
            <summary>
            static constructor
            </summary>
        </member>
        <member name="P:EU.CqrXs.Util.LibPaths.SystemDirPath">
            <summary>
            SystemDirPath return system directory path, 
            if defined in App.Config, 
            otherwise applcation directory of base exe.
            </summary>
        </member>
        <member name="P:EU.CqrXs.Util.LibPaths.TempDir">
            <summary>
            Path to temp directory
            </summary>
        </member>
        <member name="P:EU.CqrXs.Util.LibPaths.SystemDirResPath">
            <summary>
            SystemDirResPath returns path to subdirector <see cref="F:EU.CqrXs.Util.Constants.RES_DIR"/> of base directory <see cref="P:EU.CqrXs.Util.LibPaths.SystemDirPath"/>.
            If subdirectory <see cref="F:EU.CqrXs.Util.Constants.RES_DIR"/> will be created, if it not allready exist inside directory <see cref="P:EU.CqrXs.Util.LibPaths.SystemDirPath"/>.        
            </summary>
        </member>
        <member name="P:EU.CqrXs.Util.LibPaths.SystemDirLogPath">
            <summary>
            SystemDirLogPath gets the default full path to logfile in file system
            </summary>
        </member>
        <member name="M:EU.CqrXs.Util.LibPaths.GetLogFilePath(System.String)">
            <summary>
            GetLogFilePath - gets individual named logfile with substring appName
            </summary>
            <param name="appName">application name to customize logfile name</param>
            <returns>Full file path to log file in file system</returns>
        </member>
        <member name="P:EU.CqrXs.Util.MimeTypeExtSig.FileExt">
            <summary>
            File Extension
            </summary>
        </member>
        <member name="P:EU.CqrXs.Util.MimeTypeExtSig.MimeTyp">
            <summary>
            Mime type name
            </summary>
        </member>
        <member name="F:EU.CqrXs.Util.MimeTypeExtSig.SigBytesList">
            <summary>
            detection list of bytes signature
            </summary>
        </member>
        <member name="T:EU.CqrXs.Util.MimeSignature">
            <summary>
            MimeType gets mime type out of content byte[] (and filename) by MIT magick cookie
            </summary>
        </member>
        <member name="M:EU.CqrXs.Util.MimeSignature.GetMimeType(System.Byte[],System.String)">
            <summary>
            GetMimeType
            </summary>
            <param name="fileBytes"><see cref="T:byte[]">byte[] binary array</see></param>
            <param name="fileName">save filename</param>
            <returns>detected mime type by binary byte pattern, 
            if no specific mime type detect => default application/octet-stream</returns>
        </member>
        <member name="M:EU.CqrXs.Util.MimeSignature.GetFileExtForMimeTypeApache(System.String)">
            <summary>
            GetFileExtForMimeTypeApache
            </summary>
            <param name="mimeString">Mime type string in format genericType/specificType, e.g.:
            image/bmp
            image/gif
            image/x-icon
            image/jpeg
            audio/mpeg
            audio/ogg
            application/msword
            </param>
            <returns>extension based on windows / dos rules with 3 <see cref="T:System.Char"/></returns>
        </member>
        <member name="M:EU.CqrXs.Util.MimeSignature.GetMimeTypeForImageBytes(System.Byte[])">
            <summary>
            Get Image mime type for image bytes
            </summary>
            <param name="bytes"></param>
            <returns></returns>
        </member>
        <member name="T:EU.CqrXs.Util.MimeType">
            <summary>
            MimeType gets mime type out of content byte[] (and filename) by MIT magick cookie
            </summary>
        </member>
        <member name="M:EU.CqrXs.Util.MimeType.GetMimeType(System.Byte[],System.String)">
            <summary>
            GetMimeType
            </summary>
            <param name="fileBytes"><see cref="T:byte[]">byte[] binary array</see></param>
            <param name="fileName">save filename</param>
            <returns>detected mime type by binary byte pattern, 
            if no specific mime type detect => default application/octet-stream</returns>
        </member>
        <member name="M:EU.CqrXs.Util.MimeType.GetFileExtForMimeTypeApache(System.String)">
            <summary>
            GetFileExtForMimeTypeApache
            </summary>
            <param name="mimeString">Mime type string in format genericType/specificType, e.g.:
            image/bmp
            image/gif
            image/x-icon
            image/jpeg
            audio/mpeg
            audio/ogg
            application/msword
            </param>
            <returns>extension based on windows / dos rules with 3 <see cref="T:System.Char"/></returns>
        </member>
        <member name="T:EU.CqrXs.Util.ProcessCmd">
            <summary>
            ProcessCmd static class for running an executable or processing shell command
            <see href="https://github.com/heinrichelsigan/area23.at/blob/main/Framework/Library/ProcessCmd.cs">ProcessCmd.cs at github.com/heinrichelsigan</see>
            ProcessCmd class is free software; 
            you can redistribute it and/or modify it under the terms of the GNU Library General Public License 
            aspublished by the Free Software Foundation; 
            either <seealso href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.html">version 2</seealso> 
            of the License, or (at your option) any later version.
            See the GNU Library General Public License for more details.    
            </summary>
        </member>
        <member name="M:EU.CqrXs.Util.ProcessCmd.Execute(System.String,System.String,System.Boolean)">
            <summary>
            Execute a binary or shell cmd
            </summary>
            <param name="filepath">full or relative filepath to executable</param>
            <param name="arguments">arguments passed to executable</param>
            <param name="useShellExecute">set Process.StartInfo.UseShellExecute</param>
            <returns>standard output of process pexecec it.</returns>
            <exception cref="T:System.InvalidOperationException"></exception>
        </member>
        <member name="M:EU.CqrXs.Util.ProcessCmd.Execute(System.String,System.String[],System.Boolean,System.Boolean)">
            <summary>
            Execute a binary or shell cmd
            </summary>
            <param name="cmdPath">full or relative filepath to executable</param>
            <param name="arguments"><see cref="T:string[]">string[] arguments</see> passed to executable</param>
            <param name="quoteArgs"><see cref="T:System.Boolean">bool quoteArgs</see> set each single argument under double quote, when passing it to cmdPath</param>
            <param name="useShellExecute"><see cref="T:System.Boolean">bool useShellExecute</see> true, when using system shell to execute cmdPath</param>
            <returns>Console output of executed command</returns>
            <exception cref="T:System.InvalidOperationException"></exception>
        </member>
        <member name="T:EU.CqrXs.Util.RegistryAccessor">
            <summary>
            static windows registry accessor with synchronous and asynchronous members
            </summary>
        </member>
        <member name="M:EU.CqrXs.Util.RegistryAccessor.#cctor">
            <summary>
            static ctor
            </summary>
        </member>
        <member name="M:EU.CqrXs.Util.RegistryAccessor.GetRegistryEntry(Microsoft.Win32.RegistryHive,System.String,System.String)">
            <summary>
            GetRegistryEntry gets value for specified name from registry segment
            </summary>
            <param name="regHive">registry root hive</param>
            <param name="subKeyName">subKey in registry root hive segment</param>
            <param name="regName">unique name inside subKey registry segment</param>
            <returns>object value</returns>
            <exception cref="T:System.InvalidOperationException"></exception>
        </member>
        <member name="M:EU.CqrXs.Util.RegistryAccessor.SetRegistryEntry(System.Object,Microsoft.Win32.RegistryHive,System.String,System.String)">
            <summary>
            SetRegistryEntry sets a value for a name in registry 
            </summary>        
            <param name="value">value to set</param>
            <param name="regHive">registry root hive</param>
            <param name="subKeyName">subKey in root hive registry segment</param>
            <param name="regName">name in subKey registry segment</param>
            <returns>void means nothing</returns>
            <exception cref="T:System.InvalidOperationException"></exception>
        </member>
        <member name="M:EU.CqrXs.Util.RegistryAccessor.GetRegistryEntryAsync(Microsoft.Win32.RegistryHive,System.String,System.String)">
            <summary>
            GetRegistryEntryAsync async gets an registry name value inside subkey asynchronous
            </summary>
            <param name="regHive">registry root hive</param>
            <param name="subKeyName">registry subkey name</param>
            <param name="regName">registry name ref</param>
            <returns><see cref="T:System.Threading.Tasks.Task`1">Task{object}</see></returns>
        </member>
        <member name="M:EU.CqrXs.Util.RegistryAccessor.SetRegistryEntryAsync(System.Object,Microsoft.Win32.RegistryHive,System.String,System.String)">
            <summary>
            SetRegistryEntryAsync async sets object value in registry 
            </summary>
            <param name="value"><see cref="T:System.Object"/> value to set</param>
            <param name="regHive">registry root hive</param>
            <param name="subKeyName">registry subkey name</param>
            <param name="regName">registry name ref</param>
        </member>
        <member name="M:EU.CqrXs.Util.RegistryAccessor.AwaitTaskAsync``1(System.Threading.Tasks.Task{``0})">
            <summary>
            AwaitTaskAsync
            </summary>
            <typeparam name="TResult"></typeparam>
            <param name="task"></param>
            <returns><see cref="T:System.Threading.Tasks.Task`1"/></returns>
        </member>
        <member name="M:EU.CqrXs.Util.RegistryAccessor.GetEmailFromRegistry">
            <summary>
            GetEmailFromRegistry reads user email address from registry database
            </summary>
            <returns>user email adddress or anonymous ftp.cdrom.com</returns>
        </member>
        <member name="T:EU.CqrXs.Util.ResReader">
            <summary>
            ResReader a simple resource file resx reader
            </summary>
        </member>
        <member name="M:EU.CqrXs.Util.ResReader.GetValue(System.String,System.String)">
            <summary>
            GetValue gets string resource form language specific resource file 
            </summary>
            <param name="key">unique key (culture independent) to address resource string</param>
            <param name="langCode">two letter long iso language code</param>
            <returns>string in local language fetched from resource file</returns>
        </member>
        <member name="M:EU.CqrXs.Util.ResReader.GetRes(System.String,System.Globalization.CultureInfo)">
            <summary>
            GetRes gets string resource form language specific resource file 
            </summary>
            <param name="key">unique key (culture independent) to address resource string</param>
            <param name="ci">CultureInfo for currently used language</param>
            <returns>string in local language fetched from resource file</returns>
        </member>
        <member name="M:EU.CqrXs.Util.ResReader.GetStringFormated(System.String,System.Globalization.CultureInfo,System.Object[])">
            <summary>
            GetStringFormated gets a formated string from language specific resource file
            </summary>
            <param name="key">unique key (culture independent) to address resource string</param>
            <param name="ci">CultureInfo for currently used language</param>
            <param name="args">object[] arguments needed for <see cref="M:System.String.Format(System.String,System.Object[])"/></param>
            <returns>string in local language fetched from resource file</returns>
        </member>
        <member name="M:EU.CqrXs.Util.ResReader.GetFortunes">
            <summary>
            GetFortunes from ressource file
            </summary>
            <returns></returns>
        </member>
        <member name="T:EU.CqrXs.Util.Utils">
            <summary>
            Static Utils, thanks to
            <see href="https://newtonsoft.com/json/">Newtonsoft Json.NET</see>
            <seealso href="https://stackoverflow.com/">Stackoverflow</seealso>
            <seealso href="https://stackoverflow.com/questions/4123590/serialize-an-object-to-xml">xml serializer thread on stackoverflow</seealso>
            <seeslo href="https://gist.github.com/riyadparvez/4467678">gist.github.com/riyadparvez</seeslo> for generic reflection
            </summary>
        </member>
        <member name="M:EU.CqrXs.Util.Utils.VSwapT``1(``0@,``0@)">
            <summary>
            VSwapT a generic swapper
            </summary>
            <typeparam name="T">generics</typeparam>
            <param name="t0">refernce in t0, reference out t1</param>
            <param name="t1">efernce in t1, reference out t0</param>
        </member>
        <member name="M:EU.CqrXs.Util.Utils.SwapT``1(``0@,``0@)">
            <summary>
            SwapT a generic swapper
            </summary>
            <typeparam name="T"></typeparam>
            <param name="t0">refernce in t0, reference out t1</param>
            <param name="t1">efernce in t1, reference out t0</param>
            <returns>an array with 2 elements with original positions</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Utils.SetNull(System.Object[])">
            <summary>
            Generic null setter for an array of objects
            </summary>
            <param name="os"></param>
            <returns></returns>
        </member>
        <member name="M:EU.CqrXs.Util.Utils.SetNullT``1(``0[])">
            <summary>
            generic null setter for an array of T
            </summary>
            <typeparam name="T"></typeparam>
            <param name="ts"></param>
            <returns></returns>
        </member>
        <member name="M:EU.CqrXs.Util.Utils.SerializeToXml``1(``0)">
            <summary>
            SerializeToXml gemeric to xml serialize
            </summary>
            <typeparam name="T"></typeparam>
            <param name="obj">object to serialize</param>
            <returns>xml serialized string</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Utils.DeserializeFromXml``1(System.String)">
            <summary>
            DeserializeFromXml generic T from xml deserializer
            </summary>
            <typeparam name="T"></typeparam>
            <param name="xml">sml serialized string</param>
            <returns>generic T</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Utils.SerializeToJsonl``1(``0)">
            <summary>
            SerializeToJsonl gemeric to json serialize
            </summary>
            <typeparam name="T"></typeparam>
            <param name="t">object to serialize</param>
            <returns>json serialized string</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Utils.DeserializeFromJson``1(System.String)">
            <summary>
            DeserializeFromJson generic deserialize a json serialized string
            </summary>
            <typeparam name="T"></typeparam>
            <param name="json">json serialized string</param>
            <returns>generic object T</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Utils.GetAllFields(System.Type)">
            <summary>
            Get all the fields of a class
            </summary>
            <param name="type">Type object of that class</param>
            <returns></returns>
        </member>
        <member name="M:EU.CqrXs.Util.Utils.GetAllProperties(System.Type)">
            <summary>
            Get all properties of a class
            </summary>
            <param name="type">Type object of that class</param>
            <returns></returns>
        </member>
        <member name="M:EU.CqrXs.Util.Utils.FromHtml(System.String)">
            <summary>
            FromHtml gets color from hexadecimal rgb string html standard
            static method Supu.Framework.Extensions.ColorFrom.FromHtml(string hex) 
            is an alternative to System.Drawing.Color.FromHtml(string hex) extension method
            </summary>
            <param name="hex">hexadecimal rgb string with starting #</param>
            <returns>Color, that was defined by hexadecimal html standarized #rrggbb string</returns>
        </member>
        <member name="M:EU.CqrXs.Util.Utils.FromXrgb(System.String)">
            <summary>
            FromXrgb gets color from hexadecimal rgb string
            static method Supu.Framework.Extensions.ColorFrom.FromXrgb(string hex) 
            is an alternative to System.Drawing.Color.FromXrgb(string hex) extension method
            </summary>
            <param name="hex">hexadecimal rgb string with starting #</param>
            <returns>Color, that was defined by hexadecimal rgb string</returns>
        </member>
        <member name="T:EU.CqrXs.Zip.BZip2">
            <summary>
            static class BZip2 provides bzip2 and bunzip2 functionality
            </summary>
        </member>
        <member name="M:EU.CqrXs.Zip.BZip2.BZip(System.Byte[],System.Int32)">
            <summary>
            BZip transfdorms uncompressed <see cref="T:yte[]">byte[] inBytes</see> to <see cref="T:byte[]">bzip2 compressed (byte[])bytes</see>
            </summary>
            <param name="inBytes"> <see cref="T:byte[]">bytes</see> ready to compress</param>
            <param name="compressionLevel">level of compression: 
             1  ... for at least no compression, 
            4,5 ... for average compression
             9  ... for strongest bzip2 compression, generating smallest most compact output 
            </param>
            <returns><see cref="T:byte[]?">byte[] bzip2 compressed out bytes</see></returns>
        </member>
        <member name="M:EU.CqrXs.Zip.BZip2.BZip2Stream(System.IO.MemoryStream,System.Boolean,System.Int32)">
            <summary>
            BZip2Stream bzip2 data on a  a <see cref="T:System.IO.MemoryStream">Memorystream memIn</see>
            and write bzip2 compressed data on <see cref="T:System.IO.MemoryStream">MemoryStream memOut</see>
            </summary>
            <param name="memIn"><see cref="T:System.IO.MemoryStream">Memorystream containg data to compress</see></param>
            <param name="closeDisposeMemIn">if true, parameter passed <see cref="T:System.IO.MemoryStream">memIn</see> will be closed and disppsed 
            after compressed data are written to <see cref="T:System.IO.MemoryStream">MemoryStream memOut</see>, which will be returned</param>
            <param name="compressionLevel">level of compression: 
             1  ... for at least no compression, 
            4,5 ... for average compression
             9  ... for strongest bzip2 compression, generating smallest most compact output 
            </param>
            <returns><see cref="T:System.IO.MemoryStream">MemoryStream memOut containing bzip2 compressed data</see></returns>
        </member>
        <member name="M:EU.CqrXs.Zip.BZip2.BZip2Bytes(System.Byte[],System.Int32)">
            <summary>
            BZip2Bytes bzip2 <see cref="T:byte[]">byte[] inBytes</see> 
            and write bzip2 compressed data <see cref="T:byte[]">byte[] outBytes</see> 
            </summary>
            <param name="inBytes"><see cref="T:byte[]">byte[] inBytes, containing data to compress with bzip2</see></param>
            <param name="compressionLevel">level of compression: 
             1  ... for at least no compression, 
            4,5 ... for average compression
             9  ... for strongest bzip2 compression, generating smallest most compact output 
            </param>
            <returns><see cref="T:byte[]">byte[] outBytes</see> containing bzip2 compressed data of / from <see cref="T:byte[]">byte[] outBytes</see></returns>
        </member>
        <member name="M:EU.CqrXs.Zip.BZip2.BZip2TextAndEncode(System.String,System.Int32,EU.CqrXs.Crypt.EnDeCoding.EncodingType)">
            <summary>
            BZips a string and returns it as hex16, hex32, base32, base64 (default) or uuencoded string
            </summary>
            <param name="inText"></param>
            <param name="compressionLevel"></param>
            <param name="encType"></param>
            <returns></returns>
        </member>
        <member name="M:EU.CqrXs.Zip.BZip2.BUnZip(System.Byte[])">
            <summary>
            BUnZips compressed <see cref="T:byte[]">byte[] inBytes</see> 
            and returns the decompressed bunzipped <see cref="T:byte[]?" />.
            </summary>
            <param name="inBytes">compressed / bzipped <see cref="T:byte[]">byte[] inBytes</see></param>
            <returns>decompressed bunzipped <see cref="T:byte[]?">byte[]?</see></returns>
        </member>
        <member name="M:EU.CqrXs.Zip.BZip2.BUnZip2Stream(System.IO.MemoryStream,System.Boolean)">
            <summary>
            BUnZip2Stream bunzip2 (= decompresses) data on a <see cref="T:System.IO.MemoryStream">Memorystream memIn</see>
            and writes decompressed unzipped data to <see cref="T:System.IO.MemoryStream">MemoryStream memOut</see>
            </summary>
            <param name="memIn"><see cref="T:System.IO.MemoryStream">Memorystream containg bzip2 compressed / zipped data to decompress</see></param>        
            <param name="closeDisposeMemIn">if true, parameter passed <see cref="T:System.IO.MemoryStream">memIn</see> will be closed and disppsed 
            after compressed data are written to <see cref="T:System.IO.MemoryStream">MemoryStream memOut</see>, which will be returned</param>
            <returns><see cref="T:System.IO.MemoryStream">MemoryStream memOut containing bunzip2 decompressed / unzipped data</see></returns>
        </member>
        <member name="M:EU.CqrXs.Zip.BZip2.BUnZip2Bytes(System.Byte[])">
            <summary>
            BUnZip2Bytes bunzips <see cref="T:byte[]">byte[] inBytes</see> and writes
            decompressed unzipped data to <see cref="T:byte[]">byte[] outBytes</see> 
            </summary>
            <param name="inBytes"><see cref="T:byte[]">byte[] inBytes, containing bzip2 compressed data</see></param>
            <returns><see cref="T:byte[]">byte[] outBytes</see> containing bunzipped / decompressed data from <see cref="T:byte[]">byte[] inBytes</see></returns>
        </member>
        <member name="M:EU.CqrXs.Zip.BZip2.BzFile(System.String,System.String@,System.String,System.Boolean,System.Int32)">
            <summary>
            BzFile bzips or bunzips a file
            </summary>
            <param name="inFile"><see cref="T:System.String">full (unc) filepath to file</see></param>
            <param name="outMessage">string with information, what happend</param>
            <param name="outFile"><see cref="T:System.String"/>full (unc) filepath to outfile,
            if keept empty, .bz2 will be added after compression and .bz|.bz2 will be removed after decompressing bzip'd file.</param>
            <param name="zip"><see cref="T:System.Boolean">(bool)true for bzip2, (bool)false for bunzip2 (bzip2 -d)</see></param>
            <param name="compressionLevel">level of compression: 
             1  ... for at least no compression, 
            4,5 ... for average compression
             9  ... for strongest bzip2 compression, generating smallest most compact output 
            </param>
            <returns><see cref="T:System.String">string name of processed (bzipped/bunzipped) file</see></returns>
        </member>
        <member name="T:EU.CqrXs.Zip.GZ">
            <summary>
            abstraction of gnu zip gzip compression and decompression
            </summary>
        </member>
        <member name="M:EU.CqrXs.Zip.GZ.GZip(System.Byte[],System.Int32)">
            <summary>
            GZip directly
            </summary>
            <param name="inBytes"><see cref="T:byte[]">inBytes</see></param>
            <param name="compressionLevel">level of compression: 
             1  ... for at least no compression, 
            4,5 ... for average compression
             9  ... for strongest bzip2 compression, generating smallest most compact output 
            </param>
            <returns><see cref="T:byte[]"/> outbytes</returns>
        </member>
        <member name="M:EU.CqrXs.Zip.GZ.GZipStream(System.IO.MemoryStream)">
            <summary>
            GZipStream 
            </summary>
            <param name="inMem"><see cref="T:System.IO.MemoryStream"/> inMem</param>
            <returns><see cref="T:System.IO.MemoryStream"/> outMem</returns>
        </member>
        <member name="M:EU.CqrXs.Zip.GZ.GUnZip(System.Byte[])">
            <summary>
            GUnZip
            </summary>
            <param name="inBytes"><see cref="T:byte[]"/> inBytes</param>
            <returns><see cref="T:byte[]"/> outbytes</returns>
        </member>
        <member name="M:EU.CqrXs.Zip.GZ.GUnZipBytes(System.Byte[])">
            <summary>
            GUnZipBytes
            </summary>
            <param name="inBytes"><see cref="T:byte[]"/> inBytes</param>
            <returns><see cref="T:byte[]"/> outbytes</returns>
        </member>
        <member name="M:EU.CqrXs.Zip.GZ.GzFile(System.String,System.String@,System.String,System.Boolean,System.Int32)">
            <summary>
            GzFile gzips or gunzips a file
            </summary>
            <param name="inFile"><see cref="T:System.String">full (unc) filepath to file</see></param>
            <param name="outMessage">string with information, what happend</param>
            <param name="outFile"><see cref="T:System.String"/>full (unc) filepath to outfile,
            if keept empty, .gz will be added after compression and .gz will be removed after decompressing gzip'd file.</param>
            <param name="zip"><see cref="T:System.Boolean">(bool)true for gzip, (bool)false for gunzip</see></param>
            <param name="compressionLevel">level of compression: 
             1  ... for at least no compression, 
            4,5 ... for average compression
             9  ... for strongest bzip2 compression, generating smallest most compact output 
            </param>
            <returns><see cref="T:System.String">string name of processed (gzipped/gunzipped) file</see></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="T:EU.CqrXs.Zip.WinZip">
            <summary>
            WinZip 
            </summary>
        </member>
        <member name="M:EU.CqrXs.Zip.WinZip.Zip(System.Byte[],System.String)">
            <summary>
            Zip zips a byte array and returns the zipped byte array.
            </summary>
            <param name="inBytes">input byte[] array</param>
            <returns>compressed byte[] array</returns>
        </member>
        <member name="M:EU.CqrXs.Zip.WinZip.UnZip(System.Byte[])">
            <summary>
            Unzip unzips a zip compressed byte array and returns the unzipped byte array.
            </summary>
            <param name="inBytes">compressed byte[] array</param>
            <returns>unzipped byte[] array</returns>
        </member>
        <member name="M:EU.CqrXs.Zip.ZipTypeExtensions.Zip(EU.CqrXs.Zip.ZipType,System.Byte[])">
            <summary>
            Generic zip extension method for <see cref="T:EU.CqrXs.Zip.ZipType"/>
            </summary>
            <param name="inBytes"></param>
            <returns>zipped bytes</returns>
        </member>
        <member name="M:EU.CqrXs.Zip.ZipTypeExtensions.Unzip(EU.CqrXs.Zip.ZipType,System.Byte[])">
            <summary>
            Generic unzip extension method for <see cref="T:EU.CqrXs.Zip.ZipType"/>
            </summary>
            <param name="zipType">this the <see cref="T:EU.CqrXs.Zip.ZipType"/></param>
            <param name="compressedBytes"></param>
            <returns>decompressed bytes</returns>
        </member>
    </members>
</doc>
