}
JAXBElement dataJAXB = new JAXBElement(new QName("http://www.w3.org/2000/09/xmldsig#", tagName), SPKIDataType.class, spkiDataType);
parentKeyDataList.add(dataJAXB);
} else if (dataType.equals(KeyValueType.class.getSimpleName())) {
KeyValueType keyValueType = new KeyValueType();
for (KeyDataValue keyValueDataKDV : modelKeyDataValue.getKeyDataValueList()) {
for (KeyDataValue keyValueDataChildKDV : keyValueDataKDV.getKeyDataValueList()) {
String keyDataDataType = keyValueDataChildKDV.getKeyDataType();
if (keyDataDataType.equals("DSAKeyValueType")) {
DSAKeyValueType dsaKeyValueType = new DSAKeyValueType();
for (KeyDataValue dsaKDV : keyValueDataChildKDV.getKeyDataValueList()) {
if ("G".equals(dsaKDV.getKeyDataName())) {
dsaKeyValueType.setG(dsaKDV.getKeyDataValueBytes());
} else if ("P".equals(dsaKDV.getKeyDataName())) {
dsaKeyValueType.setP(dsaKDV.getKeyDataValueBytes());
} else if ("Q".equals(dsaKDV.getKeyDataName())) {
dsaKeyValueType.setQ(dsaKDV.getKeyDataValueBytes());
} else if ("Y".equals(dsaKDV.getKeyDataName())) {
dsaKeyValueType.setY(dsaKDV.getKeyDataValueBytes());
} else if ("J".equals(dsaKDV.getKeyDataName())) {
dsaKeyValueType.setJ(dsaKDV.getKeyDataValueBytes());
} else if ("Seed".equals(dsaKDV.getKeyDataName())) {
dsaKeyValueType.setSeed(dsaKDV.getKeyDataValueBytes());
} else if ("PgenCounter".equals(dsaKDV.getKeyDataName())) {
dsaKeyValueType.setPgenCounter(dsaKDV.getKeyDataValueBytes());
} else {
throw new RuntimeException("Unrecognized dsa type: " + dsaKDV.getKeyDataName());
}
}
JAXBElement jaxb = new JAXBElement(new QName("http://www.w3.org/2000/09/xmldsig#", keyValueDataChildKDV.getKeyDataName()), DSAKeyValueType.class, dsaKeyValueType);
keyValueType.getContent().add(jaxb);
} else if (keyDataDataType.equals("RSAKeyValueType")) {
RSAKeyValueType rsaKeyValueType = new RSAKeyValueType();
for (KeyDataValue rsaKDV : keyValueDataChildKDV.getKeyDataValueList()) {
if ("Exponent".equals(rsaKDV.getKeyDataName())) {
rsaKeyValueType.setExponent(rsaKDV.getKeyDataValueBytes());
} else if ("Modulus".equals(rsaKDV.getKeyDataName())) {
rsaKeyValueType.setModulus(rsaKDV.getKeyDataValueBytes());
} else {
throw new RuntimeException("Unrecognized dsa type: " + rsaKDV.getKeyDataName());
}
}
JAXBElement jaxb = new JAXBElement(new QName("http://www.w3.org/2000/09/xmldsig#", keyValueDataChildKDV.getKeyDataName()), RSAKeyValueType.class, rsaKeyValueType);
keyValueType.getContent().add(jaxb);
} else {
throw new RuntimeException("Unrecognized element: " + keyDataDataType);
}
}
}