/** * Copyright (c) 2014 Matthias Jaenicke <matthias.jaenicke@student.kit.edu>, * Matthias Plappert <undkc@student.kit.edu>, * Julien Duman <uncyc@student.kit.edu>, * Christian Dreher <uaeef@student.kit.edu>, * Wasilij Beskorovajnov <uajkm@student.kit.edu> and * Aydin Tekin <aydin.tekin@student.kit.edu> * * Released under the MIT license (refer to LICENSE.md) * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ package edu.kit.iks.Cryptographics.DiffieHellman; import java.util.ArrayList; import java.util.List; import org.xnap.commons.i18n.I18n; import edu.kit.iks.Cryptographics.DiffieHellman.Demonstration.ExplainAimController; import edu.kit.iks.Cryptographics.DiffieHellman.Demonstration.DHDemoController; import edu.kit.iks.Cryptographics.DiffieHellman.Demonstration.DemoOneWayController; import edu.kit.iks.Cryptographics.DiffieHellman.Experiment.YourTurnController; import edu.kit.iks.Cryptographics.DiffieHellman.Experiment.DHExperimentController; import edu.kit.iks.CryptographicsLib.AbstractVisualizationInfo; import edu.kit.iks.CryptographicsLib.Configuration; import edu.kit.iks.CryptographicsLib.InformationController; import edu.kit.iks.CryptographicsLib.VisualizationDifficulty; /** * The VisualizationInfo for Diffie-Hellman Key-Exchange Analogy * @author kai * */ public class DHVisualizationInfo extends AbstractVisualizationInfo { /** * Localization instance */ private static I18n i18n = Configuration.getInstance().getI18n( DHVisualizationInfo.class); /** * Our description of the procedure */ private String description = i18n.tr("The infamous Diffie-Hellman Key-Exchange " + "explained with a color-mixing analogy. Establish a shared secret, " + "without an eavesdropper getting the secret, too!"); /* * (non-Javadoc) * @see edu.kit.iks.CryptographicsLib.AbstractVisualizationInfo#getId() */ @Override public String getId() { return "diffiehellman"; } /* * (non-Javadoc) * @see edu.kit.iks.CryptographicsLib.AbstractVisualizationInfo#getName() */ @Override public String getName() { return i18n.tr("Diffie-Hellman"); } /* * (non-Javadoc) * @see edu.kit.iks.CryptographicsLib.AbstractVisualizationInfo#getDescription() */ @Override public String getDescription() { return description; } /* * (non-Javadoc) * @see edu.kit.iks.CryptographicsLib.AbstractVisualizationInfo#getTimelineOffset() */ @Override public float getTimelineOffset() { return 0.86f; } /* * (non-Javadoc) * @see edu.kit.iks.CryptographicsLib.AbstractVisualizationInfo#getDifficulty() */ @Override public VisualizationDifficulty getDifficulty() { return VisualizationDifficulty.HARD; } /* * (non-Javadoc) * @see edu.kit.iks.CryptographicsLib.AbstractVisualizationInfo#getYear() */ @Override public int getYear() { return 1976; } /* * (non-Javadoc) * @see edu.kit.iks.CryptographicsLib.AbstractVisualizationInfo#getControllerClasses() */ @SuppressWarnings("rawtypes") @Override public List<Class> getControllerClasses() { List<Class> controllerClasses = new ArrayList<Class>(); controllerClasses.add(ExplainAimController.class); controllerClasses.add(DemoOneWayController.class); controllerClasses.add(DHDemoController.class); controllerClasses.add(YourTurnController.class); controllerClasses.add(DHExperimentController.class); // controllerClasses.add(CongratsController.class); controllerClasses.add(InformationController.class); return controllerClasses; } /* * (non-Javadoc) * @see edu.kit.iks.CryptographicsLib.AbstractVisualizationInfo#getQRCodeContent() */ @Override public String getQRCodeContent() { return i18n.tr("http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange"); } }