package org.keyczar; import java.util.ArrayList; import java.util.List; import org.keyczar.enums.KeyPurpose; import org.keyczar.enums.KeyStatus; import org.keyczar.exceptions.KeyczarException; import org.keyczar.interfaces.KeyczarReader; public class KeyczarReaderWrapper implements KeyczarReader { private final KeyMetadata metadata; private final List<KeyczarKey> keys; public KeyczarReaderWrapper(RsaPublicKey key) { this.metadata = new KeyMetadata("Imported RSA", KeyPurpose.ENCRYPT, DefaultKeyType.RSA_PUB); KeyVersion version = new KeyVersion(0, KeyStatus.PRIMARY, false); this.metadata.addVersion(version); this.keys = new ArrayList<KeyczarKey>(); this.keys.add(key); } public KeyczarReaderWrapper(RsaPrivateKey key) { this.metadata = new KeyMetadata("Imported RSA", KeyPurpose.DECRYPT_AND_ENCRYPT, DefaultKeyType.RSA_PRIV); KeyVersion version = new KeyVersion(0, KeyStatus.PRIMARY, false); this.metadata.addVersion(version); this.keys = new ArrayList<KeyczarKey>(); this.keys.add(key); } @Override public String getKey() throws KeyczarException { KeyMetadata metadata = KeyMetadata.read(getMetadata()); return getKey(metadata.getPrimaryVersion().getVersionNumber()); } @Override public String getKey(int version) { return keys.get(version).toString(); } @Override public String getMetadata() { String s = metadata.toString(); return s; } }