// 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/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.MessageType;
import static net.seleucus.wsp.crypto.fwknop.fields.DigestType.SHA256;
import static net.seleucus.wsp.crypto.fwknop.fields.MessageType.AccessMessage;
package net.seleucus.wsp.crypto.fwknop;



public class MessageBuilder {

    private long randomValue;
    private String username;
    private long timestamp;
    private String version = "2.0.2";
// 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/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/main/java/net/seleucus/wsp/crypto/fwknop/MessageBuilder.java
import net.seleucus.wsp.crypto.fwknop.fields.DigestType;
import net.seleucus.wsp.crypto.fwknop.fields.MessageType;
import static net.seleucus.wsp.crypto.fwknop.fields.DigestType.SHA256;
import static net.seleucus.wsp.crypto.fwknop.fields.MessageType.AccessMessage;

package net.seleucus.wsp.crypto.fwknop;



public class MessageBuilder {

    private long randomValue;
    private String username;
    private long timestamp;
    private String version = "2.0.2";
    private MessageType messageType = AccessMessage;