/*
* Copyright (C) 2014 Intel Corporation
* All rights reserved.
*/
package com.intel.mtwilson.privacyca.v2.rpc;
import static gov.niarl.his.privacyca.TpmUtils.byteArrayToHexString;
import static gov.niarl.his.privacyca.TpmUtils.hexStringToByteArray;
import java.util.BitSet;
/**
*
* @author jbuhacoff
*/
public class Util {
public static class TpmIdentityProofOptions {
public boolean TrousersModeIV = false;
public boolean TrousersModeSymkeyEncscheme = false;
public boolean TrousersModeBlankOeap = false;
}
public static String encodeTpmIdentityProofOptionsToHex(TpmIdentityProofOptions options) {
return byteArrayToHexString(encodeTpmIdentityProofOptionsToByteArray(options));
}
public static byte[] encodeTpmIdentityProofOptionsToByteArray(TpmIdentityProofOptions options) {
BitSet bits = new BitSet(3);
bits.clear();
bits.set(0, options.TrousersModeIV);
bits.set(1, options.TrousersModeSymkeyEncscheme);
bits.set(2, options.TrousersModeBlankOeap);
return bits.toByteArray();
}
public static TpmIdentityProofOptions decodeTpmIdentityProofOptionsFromHex(String encodedOptions) {
return decodeTpmIdentityProofOptionsFromByteArray(hexStringToByteArray(encodedOptions));
}
public static TpmIdentityProofOptions decodeTpmIdentityProofOptionsFromByteArray(byte[] encodedOptions) {
BitSet bits = BitSet.valueOf(encodedOptions);
TpmIdentityProofOptions options = new TpmIdentityProofOptions();
options.TrousersModeIV = bits.get(0);
options.TrousersModeSymkeyEncscheme = bits.get(1);
options.TrousersModeBlankOeap = bits.get(2);
return options;
}
}