package eu.dnetlib.simplesso;

import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.security.Security;
import java.security.cert.Certificate;

import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.openssl.PEMReader;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Required;
import org.springframework.core.io.Resource;

public class SimpleSSOCertificate implements InitializingBean {
	
	static {
		Security.addProvider(new BouncyCastleProvider());
	}

	Resource certFile;

	private Certificate keyPair;

	public SimpleSSOCertificate() {
	}

	@Override
	public void afterPropertiesSet() throws Exception {
		final InputStream inputStream = certFile.getInputStream();
		Reader authCertReader = new InputStreamReader(inputStream);
		PEMReader reader = new PEMReader(authCertReader);
		this.keyPair = (Certificate) reader.readObject();
	}

	public Certificate getKeyPair() {
		return keyPair;
	}

	public void setKeyPair(Certificate keyPair) {
		this.keyPair = keyPair;
	}

	public Resource getCertFile() {
		return certFile;
	}

	@Required
	public void setCertFile(Resource certFile) {
		this.certFile = certFile;
	}

}
