| | |
| | | /* |
| | | * To change this license header, choose License Headers in Project Properties. |
| | | * To change this template file, choose Tools | Templates |
| | | * and open the template in the editor. |
| | | * Nutzerverwaltung - User and role management in your browser |
| | | * Copyright (C) 2011-2017 Ulrich Hilger, http://uhilger.de |
| | | * |
| | | * This program is free software: you can redistribute it and/or modify |
| | | * it under the terms of the GNU General Public License as published by |
| | | * the Free Software Foundation, either version 3 of the License, or |
| | | * (at your option) any later version. |
| | | * |
| | | * This program is distributed in the hope that it will be useful, |
| | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| | | * GNU General Public License for more details. |
| | | * |
| | | * You should have received a copy of the GNU General Public License |
| | | * along with this program. If not, see http://www.gnu.org/licenses/ |
| | | */ |
| | | |
| | | package de.uhilger.um; |
| | | |
| | | /** |
| | | * Klassen, die eine Verschlüsselungsfunktion f&6uml;r den |
| | | * UserMgr bereitstellen wollen, müssen diese Schnittstelle |
| | | * implementieren |
| | | * |
| | | * @author ulli |
| | | * @author Copyright (c) Ulrich Hilger, http://uhilger.de |
| | | * @author Published under the terms and conditions of the |
| | | * <a href="http://www.gnu.org/licenses/agpl-3.0" target="_blank">GNU Affero |
| | | * General Public License</a> |
| | | * |
| | | * @version 2, December 27, 2016 |
| | | */ |
| | | public interface Digester { |
| | | |
| | | /** Name des MD5-Algorithmus zum Verschlüsseln */ |
| | | public static final String MD5 = "MD5"; |
| | | |
| | | public static final String SHA256 = "sha-256"; |
| | | |
| | | /** |
| | | * Einen Ausdruck verschlüsseln |
| | | * |
| | | * @param text der Ausdruck, der verschlüsselt werden soll |
| | | * @param algorithm der Name des Algorithmus, der zum Verschlüsseln verwendet werden soll |
| | | * @param encoding das Encoding, in dem der Ausdruck vorliegt |
| | | * @return der verschlüsselte Ausdruck |
| | | */ |
| | | String digest(String text, String algorithm, String encoding); |
| | | |
| | | /** |
| | | * Einen Klartext-Ausdruck mit seiner verschluesselten Fassung vergleichen |
| | | * @param inputCredentials der Klartext-Ausdruck fuer den festgestellt werden soll, |
| | | * ob er zum gespeicherten Ausdruck passt |
| | | * @param storedCredentials der gespeicherte (verschluesselte) Ausdruck, fuer den |
| | | * festgestellt werden soll, ob er zum Klartext-Ausdruck passt |
| | | * @param algorithm der Verschluesselungs-Algorithmus |
| | | * @param encoding das Encoding |
| | | * @return wahr, wenn der Klartext-Ausdruck dem hinterlegten verschluesselten Ausdruck |
| | | * entspricht, falsch, wenn nicht |
| | | */ |
| | | boolean matches(String inputCredentials, String storedCredentials, String algorithm, String encoding); |
| | | } |