package org.openstack.atlas.api.validation.verifiers; import org.openstack.atlas.api.validation.expectation.ValidationResult; import org.openstack.atlas.util.ca.zeus.ErrorEntry; import org.openstack.atlas.util.ca.zeus.ZeusUtils; import java.util.ArrayList; import java.util.List; public class PrivateKeyVerifier implements Verifier<String> { @Override public VerifierResult verify(String privateKey) { if (privateKey == null) { return new VerifierResult(false); } List<ErrorEntry> errors = new ArrayList<ErrorEntry>(); ZeusUtils.parseKey(privateKey, errors); if (!errors.isEmpty()) { List<ValidationResult> errorList = new ArrayList<ValidationResult>(); for (ErrorEntry errorEntry : errors) { ValidationResult result; switch (errorEntry.getErrorType()) { case UNREADABLE_KEY: result = new ValidationResult(false, "Private key is unreadable."); break; case COULDENT_ENCODE_KEY: result = new ValidationResult(false, "Could not properly encode private key."); break; default: result = new ValidationResult(false, "Private key is unreadable."); } errorList.add(result); } return new VerifierResult(false, errorList); } return new VerifierResult(true); } }