<?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.CiffreMode">
            <summary>
            <see cref="T:System.Security.Cryptography.CipherMode"/>
            </summary>
        </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>
        </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.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>
        </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>
        </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>
        </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.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.SymmCryptParams">
            <summary>
            SymmCryptParams prefered params for symmetric block cipher
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCryptParams.#ctor">
            <summary>
            standard ctor with <see cref="F:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnum.Aes"/> default
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCryptParams.#ctor(EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnum)">
            <summary>
            constructs a object with correct <see cref="!:Mode"/>, <see cref="T:System.Drawing.Size"/>, <see cref="P:EU.CqrXs.Crypt.Cipher.CryptParams.KeyLen"/>
            for parameter <see cref="N:EU.CqrXs.Crypt.Cipher"/>
            </summary>
            <param name="cipherAlgo"><see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnum"/></param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCryptParams.#ctor(EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnum,System.String,System.String)">
            <summary>
            constructs a <see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCryptParams"/> object 
            with correct <see cref="!:Mode"/>, <see cref="T:System.Drawing.Size"/>, 
            with additional Key and <see cref="T:EU.CqrXs.Crypt.Hash.KeyHash" />
            for parameter <see cref="N:EU.CqrXs.Crypt.Cipher"/>
            </summary>
            <param name="cipherAlgo"><see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnum"/></param>
            <param name="key"></param>
            <param name="hash"></param>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCryptParams.#ctor(EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnum,System.String,EU.CqrXs.Crypt.Hash.KeyHash)">
            <summary>
            constructs a <see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCryptParams"/> object by <see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnum"/>
            with additional key <see cref="T:EU.CqrXs.Crypt.Hash.KeyHash"/>
            </summary>
            <param name="cipherAlgo"><see cref="T:EU.CqrXs.Crypt.Cipher.CipherEnum"/></param>
            <param name="key">secret key</param>
            <param name="keyHash">key hashing</param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCryptParams.#ctor(EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnum,System.String,System.String,EU.CqrXs.Crypt.Hash.KeyHash)">
            <summary>
            constructs a <see cref="T:EU.CqrXs.Crypt.Cipher.CryptParams"/> object by <see cref="T:EU.CqrXs.Crypt.Cipher.CipherEnum"/>
            with additional kay and hash, <see cref="T:EU.CqrXs.Crypt.Hash.KeyHash"/>
            </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>
            <param name="keyHash">key hashing</param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCryptParams.#ctor(EU.CqrXs.Crypt.Cipher.Symmetric.SymmCryptParams)">
            <summary>
            Constructs instance via another object instance
            </summary>
            <param name="cryptParams">another instance</param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCryptParams.RequestPreferedAlgorithm(EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnum)">
            <summary>
            static way to get valid <see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCryptParams"/> for a requested <see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnum"/>
            </summary>
            <param name="cipherAlgo"><see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnum"/></param>
            <returns><see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCryptParams"/></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>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.Des3Net.#ctor">
            <summary>
            
            </summary>
        </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.SymmCipherEnum">
            <summary>
            SymmCipherEnum maps prefered provided symmetric <see cref="T:Org.BouncyCastle.Crypto.IBlockCipher"/> algorthims
            Default algorithm is <see cref="F:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnum.Aes"/> <seealso cref="T:Org.BouncyCastle.Crypto.Engines.AesEngine" />
            </summary>
        </member>
        <member name="T:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnumExtensions">
            <summary>
            SymmCipherEnumExtensions provides extension methods for <see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnum"/>
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnumExtensions.GetSymmCipherTypes">
            <summary>
            GetSymmCipherTypes 
            </summary>
            <returns>an array of all SymmCipherEnum values</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnumExtensions.GetCharSymmCipherDict">
            <summary>
            GetCharSymmCipherDict gets <see cref="T:Dictionary{T:char, T:SymmCipherEnum}"/>,
            where hexbyte as char is mapped to <see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnum" />
            </summary>
            <returns><see cref="T:Dictionary{T:char, T:SymmCipherEnum}"/></returns>        
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnumExtensions.GetByteSymmCipherDict">
            <summary>
            GetByteSymmCipherDict gets <see cref="T:Dictionary{T:byte, T:SymmCipherEnum}"/>,
            where hex byte value is mapped to  <see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnum" />
            </summary>
            <returns><see cref="T:Dictionary{ T:byte, T:SymmCipherEnum}"/></returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnumExtensions.GetSymmCipherChar(EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnum)">
            <summary>
            Extensions method for Enum <see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnum"/>
            gets a character for each Cipher Algorithm, that is used here
            </summary>
            <param name="symmCipher">this <see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnum"/></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.Symmetric.SymmCipherEnumExtensions.ToCipherEnum(EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnum)">
            <summary>
            ExtensionMethod ToCipherEnum converts <see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnum"/> to <see cref="T:EU.CqrXs.Crypt.Cipher.CipherEnum"/>
            </summary>
            <param name="symmCipher"><see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnum"/> to convert</param>
            <returns></returns>
        </member>
        <member name="T:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherPipe">
            <summary>
            Provides a simple crypt pipe for <see cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnum"/>
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherPipe.#ctor(EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnum[],System.UInt32,EU.CqrXs.Crypt.EnDeCoding.EncodingType,EU.CqrXs.Zip.ZipType,EU.CqrXs.Crypt.Hash.KeyHash,EU.CqrXs.Crypt.Cipher.CipherMode2)">
            <summary>
            SymmCipherPipe constructor with an array of <see cref="T:SymmCipherEnum[]"/> as inpipe
            </summary>
            <param name="symmCipherEnums">array of <see cref="T:SymmCipherEnum[]"/> as inpipe</param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherPipe.#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>
            SymmCipherPipe constructor with an array of <see cref="T:string[]"/> as inpipe
            </summary>
            <param name="symmCipherAlgos">array of <see cref="T:string[]"/> as inpipe</param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherPipe.#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>
            SymmCipherPipe 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>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherPipe.#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.Symmetric.SymmCipherPipe"/> 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>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherPipe.#ctor(System.String,System.Boolean)">
            <summary>
            SymmCipherPipe ctor with only key
            </summary>
            <param name="key"></param>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherPipe.ToJson">
            <summary>
            ToJson 
            </summary>
            <returns>serialized string</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherPipe.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.Symmetric.SymmCipherPipe.EncryptBytesFast(System.Byte[],EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnum,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.Symmetric.SymmCipherEnum"/> both symmetric and asymetric cipher algorithms</param>
            <param name="secretKey">secret key to decrypt</param>
            <param name="hashIv">key's hash</param>
            <param name="cipherMode"></param>
            <returns>encrypted byte Array</returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherPipe.DecryptBytesFast(System.Byte[],EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherEnum,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.Symmetric.SymmCipherEnum"/>both symmetric and asymetric cipher algorithms</param>
            <param name="secretKey">secret key to decrypt</param>
            <param name="hashIv">key's hash</param>
            <param name="cmode2"></param>
            <returns>decrypted byte Array</returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherPipe.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"></param>
            <returns>encrypted byte[]</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherPipe.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"></param>
            <returns><see cref="T:byte[]"/> plain bytes</returns>
        </member>
        <member name="M:EU.CqrXs.Crypt.Cipher.Symmetric.SymmCipherPipe.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.Symmetric.SymmCipherPipe.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.Symmetric.SymmCipherPipe.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>
            <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="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.Sha1">
            <summary>
            Sha256Sum creates Sha1Sum of a file or stream or byte[] or string
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Hash.Sha1.Hash(System.String,System.Boolean)">
            <summary>
            Hashes a file
            </summary>
            <param name="filePath">full(unc) path to file</param>
            <param name="showFileName">flag, if show filename after 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="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.Sha384">
            <summary>
            Sha384 creates Sha1Sum of a file or stream or byte[] or string
            </summary>
        </member>
        <member name="M:EU.CqrXs.Crypt.Hash.Sha384.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 7:30, Channel 5: The Bionic Dog (Action/Adventure)
            	The Bionic Dog drinks too much and kicks over the National
            	Redwood Forest.
            
            7:30, Channel 8: The Bionic Dog (Action/Adventure)
            	The Bionic Dog gets a hormonal short-circuit and violates the
            	Mann Act with an interstate Greyhound bus.
            %
            A &quot;critic&quot; is a man who creates nothing and thereby feels qualified to
            judge the work of creative men. There is logic in this; he is unbiased
            -- he hates all creative people equally.
            		-- Robert Heinlein
            %
            Ther [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.StripCiphersInFileName(System.String)">
            <summary>
            Extension <see cref="T:System.String"/>.StripCiphersInFileName() 
            strips all <see cref="T:EU.CqrXs.Crypt.Cipher.CipherEnum"/> and 
            <seealso cref="T:EU.CqrXs.Crypt.Cipher.Symmetric.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.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>
