A self hosted chat application with end-to-end encrypted messaging.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

52 lines
1.3 KiB

package org.ros.chatto.dto;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class MessageCipherDTO {
@Pattern(regexp = "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$") // regex
// for
// base64
@NotBlank
private String iv;
@Max(1)
@NotBlank
private int v;
@Max(1_000_000)
@Min(1_000)
@NotBlank
@JsonProperty("iter")
private int iterations;
@Max(256)
@Min(128)
@JsonProperty("ks")
private int keySize;
@Max(256)
@Min(128)
@JsonProperty("ts")
private int tagSize;
@Pattern(regexp = "^[A-Za-z0-9]+$") // alphabetic
@NotBlank
private String mode;
@Pattern(regexp = "^[A-Za-z0-9]+$")
private String adata;
@Pattern(regexp = "^[A-Za-z0-9]+$")
@NotBlank
private String cipher;
@Pattern(regexp = "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$")
@NotBlank
private String salt;
@JsonProperty("ct")
@Pattern(regexp = "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$")
@NotBlank
@Size(max = 2000, min = 1)
private String cipherText;
}