use of org.nhindirect.policy.x509.KeyUsageExtensionField in project nhin-d by DirectProject.
the class XMLLexiconPolicyParser_serializeTest method testSerialize_complexExpression_validateExpression.
public void testSerialize_complexExpression_validateExpression() throws Exception {
final XMLLexiconPolicyParser parser = new XMLLexiconPolicyParser();
// build the expression
final Integer keyUsage = KeyUsage.keyEncipherment;
final PolicyValue<Integer> op1 = PolicyValueFactory.getInstance(keyUsage);
final LiteralPolicyExpression<Integer> expr1 = LiteralPolicyExpressionFactory.getInstance(op1);
final KeyUsageExtensionField expr2 = new KeyUsageExtensionField(true);
final Vector<PolicyExpression> operands1 = new Vector<PolicyExpression>();
operands1.add(expr1);
operands1.add(expr2);
final OperationPolicyExpression oper1 = OperationPolicyExpressionFactory.getInstance(PolicyOperator.BITWISE_AND, operands1);
// build outer expression embedding the first operation as a parameter
final PolicyValue<Integer> op3 = PolicyValueFactory.getInstance(0);
final LiteralPolicyExpression<Integer> expr3 = LiteralPolicyExpressionFactory.getInstance(op3);
final Vector<PolicyExpression> operands2 = new Vector<PolicyExpression>();
operands2.add(oper1);
operands2.add(expr3);
final OperationPolicyExpression oper2 = OperationPolicyExpressionFactory.getInstance(PolicyOperator.GREATER, operands2);
// build a separate expression for extended key usage
final ExtendedKeyUsageExtensionField expr4 = new ExtendedKeyUsageExtensionField(true);
final PolicyValue<String> op5 = PolicyValueFactory.getInstance(ExtendedKeyUsageIdentifier.ID_KP_EMAIL_PROTECTION.getId());
final LiteralPolicyExpression<String> expr5 = LiteralPolicyExpressionFactory.getInstance(op5);
final Vector<PolicyExpression> operands3 = new Vector<PolicyExpression>();
operands3.add(expr4);
operands3.add(expr5);
final OperationPolicyExpression oper3 = OperationPolicyExpressionFactory.getInstance(PolicyOperator.CONTAINS, operands3);
// build an and operator and make sure the cert has all policies met
final Vector<PolicyExpression> operands4 = new Vector<PolicyExpression>();
operands4.add(oper2);
operands4.add(oper3);
final OperationPolicyExpression oper4 = OperationPolicyExpressionFactory.getInstance(PolicyOperator.LOGICAL_AND, operands4);
// serialize
final ByteArrayOutputStream outStream = new ByteArrayOutputStream();
parser.serialize(oper4, outStream);
assertTrue(outStream.size() > 0);
String XML = new String(outStream.toByteArray());
System.out.println(XML);
// deserialize
final ByteArrayInputStream inStream = new ByteArrayInputStream(outStream.toByteArray());
final PolicyExpression deserExpression = parser.parse(inStream);
assertNotNull(deserExpression);
assertEquals(PolicyExpressionType.OPERATION, deserExpression.getExpressionType());
}
use of org.nhindirect.policy.x509.KeyUsageExtensionField in project nhin-d by DirectProject.
the class XMLLexiconPolicyParser_serializeTest method testSerialize_simpleExpression_validateExpression.
public void testSerialize_simpleExpression_validateExpression() throws Exception {
final XMLLexiconPolicyParser parser = new XMLLexiconPolicyParser();
// build the expression
//final PolicyValue<Boolean> op1 = PolicyValueFactory.getInstance(true);
final LiteralPolicyExpression<Integer> expr = LiteralPolicyExpressionFactory.getInstance(KeyUsageBit.DATA_ENCIPHERMENT.getUsageBit());
final KeyUsageExtensionField extensionField = new KeyUsageExtensionField(true);
final Vector<PolicyExpression> operands = new Vector<PolicyExpression>();
operands.add(expr);
operands.add(extensionField);
final OperationPolicyExpression oper = OperationPolicyExpressionFactory.getInstance(PolicyOperator.EQUALS, operands);
// serialize
final ByteArrayOutputStream outStream = new ByteArrayOutputStream();
parser.serialize(oper, outStream);
String XML = new String(outStream.toByteArray());
System.out.println(XML);
/*
// deserialize
final ByteArrayInputStream inStream = new ByteArrayInputStream(outStream.toByteArray());
final PolicyExpression deserExpression = parser.parse(inStream);
assertNotNull(deserExpression);
assertEquals(PolicyExpressionType.OPERATION, deserExpression.getExpressionType());
*/
}
use of org.nhindirect.policy.x509.KeyUsageExtensionField in project nhin-d by DirectProject.
the class KeyUsageExtensionField_injectReferenceValueTest method testInjectRefereneValue_keyUsageDoesNotExist_notRequired_assertValue0.
public void testInjectRefereneValue_keyUsageDoesNotExist_notRequired_assertValue0() throws Exception {
final X509Certificate cert = TestUtils.loadCertificate("altNameOnly.der");
final KeyUsageExtensionField field = new KeyUsageExtensionField(false);
field.injectReferenceValue(cert);
assertEquals(0, (long) field.getPolicyValue().getPolicyValue());
}
use of org.nhindirect.policy.x509.KeyUsageExtensionField in project nhin-d by DirectProject.
the class KeyUsageExtensionField_injectReferenceValueTest method testInjectRefereneValue_keyUsageExists_assertValue.
public void testInjectRefereneValue_keyUsageExists_assertValue() throws Exception {
final X509Certificate cert = TestUtils.loadCertificate("AlAnderson@hospitalA.direct.visionshareinc.com.der");
final KeyUsageExtensionField field = new KeyUsageExtensionField(false);
field.injectReferenceValue(cert);
int value = field.getPolicyValue().getPolicyValue();
assertTrue((KeyUsage.keyEncipherment & value) != 0);
assertTrue((KeyUsage.nonRepudiation & value) != 0);
assertTrue((KeyUsage.digitalSignature & value) != 0);
}
use of org.nhindirect.policy.x509.KeyUsageExtensionField in project nhin-d by DirectProject.
the class KeyUsageExtensionField_injectReferenceValueTest method testInjectRefereneValue_noInjection_getPolicyValue_assertException.
public void testInjectRefereneValue_noInjection_getPolicyValue_assertException() throws Exception {
final KeyUsageExtensionField field = new KeyUsageExtensionField(true);
boolean exceptionOccured = false;
try {
field.getPolicyValue();
} catch (IllegalStateException e) {
exceptionOccured = true;
}
assertTrue(exceptionOccured);
}
Aggregations