/*
* oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.
*
* Copyright (c) 2014, Gluu
*/
package org.xdi.oxauth.model.crypto;
import org.xdi.oxauth.model.common.WebKeyStorage;
import org.xdi.oxauth.model.configuration.AppConfiguration;
/**
* @author Javier Rojas Blum
* @version April 25, 2017
*/
public class CryptoProviderFactory {
public static AbstractCryptoProvider getCryptoProvider(AppConfiguration configuration) throws Exception {
AbstractCryptoProvider cryptoProvider = null;
WebKeyStorage webKeyStorage = configuration.getWebKeysStorage();
switch (webKeyStorage) {
case KEYSTORE:
String keyStoreFile = configuration.getKeyStoreFile();
String keyStoreSecret = configuration.getKeyStoreSecret();
String dnName = configuration.getDnName();
cryptoProvider = new OxAuthCryptoProvider(keyStoreFile, keyStoreSecret, dnName);
break;
case PKCS11:
cryptoProvider = new OxElevenCryptoProvider(
configuration.getOxElevenGenerateKeyEndpoint(),
configuration.getOxElevenSignEndpoint(),
configuration.getOxElevenVerifySignatureEndpoint(),
configuration.getOxElevenDeleteKeyEndpoint(),
configuration.getOxElevenTestModeToken());
break;
}
return cryptoProvider;
}
}