コード例 #1
0
        public static string DecriptazioneSequenza(
            string sequenza,             // crypted
            string kkey_str,
            char mode
            )
        {
            //  ramoRitorno della criptazione
            CryptoEngine cs = new CryptoEngine();

            CryptoEngine.GenericAlgoPointer specificaFunzione = null;            // puntatore al servizio di criptazione

            /*
             *      La BPL chiamante fornisce {sequenza, kkey, mode}.
             *      Il par 'mode' prende valori in {'s', 'm', 'o'}, che significano rispettivamente {simple, multi, off}.
             *      Il default e' 'multi'.
             *      Qualora fosse mal configurato il campo 'mode', l'adozione del default 'multi' provochera' un'eccezione
             *      in Common.CryptoStore.Micro.Multi.
             */
            switch (mode)
            {
            case 's':
            {
                specificaFunzione =
                    new CryptoEngine.GenericAlgoPointer(
                        CryptoStore.Micro.SimpleXor.xorCrypto_ritorno
                        );
                break;
            }

            default:
            case 'm':
            {
                specificaFunzione =
                    new CryptoEngine.GenericAlgoPointer(
                        CryptoStore.Micro.MultiXor.xorMultiCrypto_ritorno
                        );
                break;
            }

            case 'o':
            {
                specificaFunzione = null;
                break;
            }
            }
            // la chiave l'ho letta sul db (kkey_str)
            CryptoEngine.theReturnType loginResult =
                cs.Decriptazione(
                    sequenza,
                    kkey_str,
                    specificaFunzione
                    );
            // ready
            return(loginResult.cryptedSequence);
        } // end
コード例 #2
0
        /// <summary>
        /// La BPL chiamante fornisce {sequenza, out mode}.
        /// Il par 'mode' prende valori in {'s', 'm', 'o'}, che significano rispettivamente {simple, multi, off}.
        /// Il default e' 'multi'.
        /// </summary>
        /// <param name="sequenza"></param>
        /// <param name="mode"></param>
        /// <returns></returns>
        public static CryptoEngine.theReturnType CriptazioneSequenza(
            string sequenza,             // in chiaro
            out char mode
            )
        {
            // Criptazione
            //  ramoAndata della criptazione

            CryptoStore.Macro.CryptoEngine cs = new CryptoStore.Macro.CryptoEngine();
            CryptoStore.Macro.CryptoEngine.GenericAlgoPointer specificaFunzione = null;            // puntatore al servizio di criptazione

            /* per decidere come valorizzare il puntatore a funzione,
             * vado in web.config a leggere allo xpath "Criptazione/CryptoService"
             * per vedere se la chiave "interruttore" e' su "acceso" o "spento"
             * e se la chiave "specificaFunzione" punta a un algoritmo esistente o
             * a un nome invalido.
             */
            ConfigurationLayer.ConfigurationService myConfig =
                new ConfigurationLayer.ConfigurationService(
                    "Criptazione/CryptoService");
            string AlgorithmSwitch = myConfig.GetStringValue("switch");

            // NB. <!-- switch: {"simple", "multi", "off"} -->
            switch (AlgorithmSwitch)
            {
            case "simple":
            {
                specificaFunzione =
                    new CryptoEngine.GenericAlgoPointer(
                        CryptoStore.Micro.SimpleXor.xorCrypto_andata
                        );
                mode = 's';                        // simple
                break;
            }

            default:                    //NB. Error in web.config: key "switch" in {"simple", "multi", "off"}.
            case "multi":
            {
                specificaFunzione =
                    new CryptoEngine.GenericAlgoPointer(
                        CryptoStore.Micro.MultiXor.xorMultiCrypto_andata
                        );
                mode = 'm';                        //multi
                break;
            }

            case "off":
            {
                specificaFunzione = null;          // no crypto.
                mode = 'o';                        // off
                break;
            }
            }            // end switch( AlgorithmSwitch)
            //
            CryptoStore.Macro.CryptoEngine.theReturnType cryptedValues =
                cs.Criptazione(
                    sequenza,
                    specificaFunzione
                    );
            // ready
            return(cryptedValues);
        } //