Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2012 Mirko Caserta
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this software 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 com.springcryptoutils.core.signature;
 
 import java.util.Map;
 
The default implementation for providing digital signatures when the private key alias can be configured on the side of the user of this class.

Author(s):
Mirko Caserta (mirko.caserta@gmail.com)
 
 
 	private Map<StringSignercache = new HashMap<StringSigner>();
 
 
 	private String algorithm = "SHA1withRSA";
 
 	private String provider;

Sets the private key registry by alias.

Parameters:
privateKeyRegistryByAlias the private key registry by alias
 
 	public void setPrivateKeyRegistryByAlias(PrivateKeyRegistryByAlias privateKeyRegistryByAlias) {
 		this. = privateKeyRegistryByAlias;
 	}

The signature algorithm. The default is SHA1withRSA.

Parameters:
algorithm the signature algorithm
 
 	public void setAlgorithm(String algorithm) {
 		this. = algorithm;
 	}

Sets the provider name of the specific implementation requested (e.g., "BC" for BouncyCastle, "SunJCE" for the default Sun JCE provider).

Parameters:
provider the provider to set
 
 	public void setProvider(String provider) {
 		this. = provider;
 	}

Signs a message.

Parameters:
keyStoreChooser the keystore chooser
privateKeyChooserByAlias the private key chooser
message the message to sign
Returns:
the signature
 
 	public byte[] sign(KeyStoreChooser keyStoreChooserPrivateKeyChooserByAlias privateKeyChooserByAliasbyte[] message) {
 		Signer signer = .get(cacheKey(keyStoreChooserprivateKeyChooserByAlias));
 
 		if (signer != null) {
 			return signer.sign(message);
 		}
 
 		SignerImpl signerImpl = new SignerImpl();
 		signerImpl.setAlgorithm();
 		signerImpl.setProvider();
 		PrivateKey privateKey = .get(keyStoreChooserprivateKeyChooserByAlias);
 
 		if (privateKey == null) {
 			throw new SignatureException("private key not found in registry: keyStoreName="
 					+ keyStoreChooser.getKeyStoreName() + ", alias=" + privateKeyChooserByAlias.getAlias());
 		}
 
 		signerImpl.setPrivateKey(privateKey);
 		.put(cacheKey(keyStoreChooserprivateKeyChooserByAlias), signerImpl);
 		return signerImpl.sign(message);
 	}
 
	private static String cacheKey(KeyStoreChooser keyStoreChooserPrivateKeyChooserByAlias privateKeyChooserByAlias) {
		return new StringBuffer().append(keyStoreChooser.getKeyStoreName()).append('-').append(
				privateKeyChooserByAlias.getAlias()).toString();
	}
New to GrepCode? Check out our FAQ X