// Path: src/main/java/net/seleucus/wsp/crypto/fwknop/fields/DigestType.java
// public enum DigestType {
// 
//     MD5(1, "MD5"),
//     SHA1(2, "SHA-1"),
//     SHA256(3, "SHA-256"),
//     SHA384(4, "SHA-384"),
//     SHA512(5, "SHA-512");
// 
//     private final int id;
//     private final String algorithmName;
// 
//     private DigestType(final int id, final String algorithmName) {
//         this.id = id;
//         this.algorithmName = algorithmName;
//     }
// 
//     public int getId() {
//         return id;
//     }
// 
//     public String algorithmName() {
//         return algorithmName;
//     }
// }
// 
// Path: src/main/java/net/seleucus/wsp/crypto/fwknop/fields/HmacType.java
// public enum HmacType {
// 
//     HmacMD5(0, "HmacMD5", 16, 22),
//     HmacSHA1(1, "HmacSHA1", 20, 27),
//     HmacSHA256(2, "HmacSHA256", 32, 43),
//     HmacSHA384(3, "HmacSHA384", 48, 64),
//     HmacSHA512(4, "HmacSHA512", 64, 86);
// 
//     private final int id;
//     private final String algorithmName;
//     private final int length;
//     private final int base64Length;
// 
//     private HmacType(int id, String algorithmName, int length, int base64Length) {
//         this.id = id;
//         this.algorithmName = algorithmName;
//         this.length = length;
//         this.base64Length = base64Length;
//     }
// 
//     public int id() {
//         return id;
//     }
// 
//     public String algorithmName() {
//         return algorithmName;
//     }
// 
//     public int length() {
//         return length;
//     }
// 
//     public int base64Length(){
//         return base64Length;
//     }
// }
// 
// Path: src/main/java/net/seleucus/wsp/crypto/fwknop/fields/MessageType.java
// public enum MessageType {
// 
//     CommandMessage(0),
//     AccessMessage(1),
//     NatAccessMessage(2),
//     ClientTimeOutAccessMessage(3),
//     ClientTimeOutNatAccessMessage(4),
//     LocalNatAccessMessage(5),
//     ClientTimeoutLocalNatAccessMessage(6);
// 
//     private int id;
// 
//     private MessageType(int id) {
//         this.id = id;
//     }
// 
//     public int getId() {
//         return id;
//     }
// }


import net.seleucus.wsp.crypto.fwknop.fields.DigestType;
import net.seleucus.wsp.crypto.fwknop.fields.HmacType;
import net.seleucus.wsp.crypto.fwknop.fields.MessageType;
package net.seleucus.wsp.crypto.fwknop;


public class TestDataRow {

    private byte[] encryptionKey;
    private byte[] signatureKey;
    private DigestType digestType;
    private HmacType hmacType;
    private long randomValue;
    private String userName;
    private long timestamp;
    private String version;
    private MessageType messageType;
    private String message;
    private String digest;
    private String encodedData;
    private String spaData;
    private String hmac;

    public byte[] encryptionKey() {
        return encryptionKey;
    }

    public void setEncryptionKey(byte[] encryptionKey) {
        this.encryptionKey = encryptionKey;
    }

    public byte[] signatureKey() {
        return signatureKey;
    }

    public void setSignatureKey(byte[] signatureKey) {
// Path: src/main/java/net/seleucus/wsp/crypto/fwknop/fields/DigestType.java
// public enum DigestType {
// 
//     MD5(1, "MD5"),
//     SHA1(2, "SHA-1"),
//     SHA256(3, "SHA-256"),
//     SHA384(4, "SHA-384"),
//     SHA512(5, "SHA-512");
// 
//     private final int id;
//     private final String algorithmName;
// 
//     private DigestType(final int id, final String algorithmName) {
//         this.id = id;
//         this.algorithmName = algorithmName;
//     }
// 
//     public int getId() {
//         return id;
//     }
// 
//     public String algorithmName() {
//         return algorithmName;
//     }
// }
// 
// Path: src/main/java/net/seleucus/wsp/crypto/fwknop/fields/HmacType.java
// public enum HmacType {
// 
//     HmacMD5(0, "HmacMD5", 16, 22),
//     HmacSHA1(1, "HmacSHA1", 20, 27),
//     HmacSHA256(2, "HmacSHA256", 32, 43),
//     HmacSHA384(3, "HmacSHA384", 48, 64),
//     HmacSHA512(4, "HmacSHA512", 64, 86);
// 
//     private final int id;
//     private final String algorithmName;
//     private final int length;
//     private final int base64Length;
// 
//     private HmacType(int id, String algorithmName, int length, int base64Length) {
//         this.id = id;
//         this.algorithmName = algorithmName;
//         this.length = length;
//         this.base64Length = base64Length;
//     }
// 
//     public int id() {
//         return id;
//     }
// 
//     public String algorithmName() {
//         return algorithmName;
//     }
// 
//     public int length() {
//         return length;
//     }
// 
//     public int base64Length(){
//         return base64Length;
//     }
// }
// 
// Path: src/main/java/net/seleucus/wsp/crypto/fwknop/fields/MessageType.java
// public enum MessageType {
// 
//     CommandMessage(0),
//     AccessMessage(1),
//     NatAccessMessage(2),
//     ClientTimeOutAccessMessage(3),
//     ClientTimeOutNatAccessMessage(4),
//     LocalNatAccessMessage(5),
//     ClientTimeoutLocalNatAccessMessage(6);
// 
//     private int id;
// 
//     private MessageType(int id) {
//         this.id = id;
//     }
// 
//     public int getId() {
//         return id;
//     }
// }


// Path: src/test/java/net/seleucus/wsp/crypto/fwknop/TestDataRow.java
import net.seleucus.wsp.crypto.fwknop.fields.DigestType;
import net.seleucus.wsp.crypto.fwknop.fields.HmacType;
import net.seleucus.wsp.crypto.fwknop.fields.MessageType;

package net.seleucus.wsp.crypto.fwknop;


public class TestDataRow {

    private byte[] encryptionKey;
    private byte[] signatureKey;
    private DigestType digestType;
    private HmacType hmacType;
    private long randomValue;
    private String userName;
    private long timestamp;
    private String version;
    private MessageType messageType;
    private String message;
    private String digest;
    private String encodedData;
    private String spaData;
    private String hmac;

    public byte[] encryptionKey() {
        return encryptionKey;
    }

    public void setEncryptionKey(byte[] encryptionKey) {
        this.encryptionKey = encryptionKey;
    }

    public byte[] signatureKey() {
        return signatureKey;
    }

    public void setSignatureKey(byte[] signatureKey) {
        this.signatureKey = signatureKey;