All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.schlichtherle.key.passwd.console.PromptingAesKeyProviderUI Maven / Gradle / Ivy

/*
 * Copyright (C) 2006-2010 Schlichtherle IT Services
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package de.schlichtherle.key.passwd.console;

import de.schlichtherle.key.*;

import java.io.*;

/**
 * Extends its base class to enable the user to select the key strength
 * for the AES cipher.
 * This class is thread safe.
 *
 * @author Christian Schlichtherle
 * @since TrueZIP 6.4
 * @version $Id: PromptingAesKeyProviderUI.java,v 1.3 2010/08/16 10:55:55 christian_schlichtherle Exp $
 */
public class PromptingAesKeyProviderUI extends PromptingKeyProviderUI {

    protected void promptExtraData(PromptingKeyProvider provider) {
        // We can safely cast the parameter to PromptingAesKeyProvider, because
        // otherwise we would not have been called.
        final PromptingAesKeyProvider aesKeyProvider = ((PromptingAesKeyProvider) provider);

        printf(resources.getString("keyStrength.banner"));
        printf(resources.getString("keyStrength.medium"));
        printf(resources.getString("keyStrength.high"));
        printf(resources.getString("keyStrength.ultra"));

        prompting: while (true) {
            String keyStrength = readLine(
                    resources.getString("keyStrength.prompt"),
                    aesKeyProvider);
            if (keyStrength == null || keyStrength.length() <= 0)
                return;
            try {
                switch (Integer.parseInt(keyStrength)) {
                    case 128:
                        aesKeyProvider.setKeyStrength(
                                AesKeyProvider.KEY_STRENGTH_128);
                        break prompting;

                    case 192:
                        aesKeyProvider.setKeyStrength(
                                AesKeyProvider.KEY_STRENGTH_192);
                        break prompting;

                    case 256:
                        aesKeyProvider.setKeyStrength(
                                AesKeyProvider.KEY_STRENGTH_256);
                        break prompting;
                }
            } catch (NumberFormatException syntaxError) {
            }
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy