Ox: Change rpad from random length to length dependent on message length

The length of message + the length of the rpad will always be a
total length of a multiple of 100.
v0.4
Martin Dosch 2 years ago
parent 13dc48bbb4
commit 6556ab1188

@ -28,11 +28,11 @@ func readFile(path string) (*bytes.Buffer, error) {
return buffer, nil
}
func getRpad() string {
func getRpad(messageLength int) string {
var letters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,;?!+-_§$%&/()=")
lettersLength := int64(len(letters))
length, _ := rand.Int(rand.Reader, big.NewInt(30))
s := make([]rune, length.Int64())
length := 100 - messageLength%100
s := make([]rune, length)
for i := range s {
pos, _ := rand.Int(rand.Reader, big.NewInt(lettersLength))
s[i] = letters[pos.Int64()]

@ -533,7 +533,7 @@ func oxEncrypt(client *xmpp.Client, oxPrivKey *crypto.Key, recipient string,
oxCryptMessageScTime := oxCryptMessageSc.CreateElement("time")
oxCryptMessageScTime.CreateAttr("stamp", time.Now().UTC().Format("2006-01-02T15:04:05Z"))
oxCryptMessageScRpad := oxCryptMessageSc.CreateElement("rpad")
oxCryptMessageScRpad.CreateText(getRpad())
oxCryptMessageScRpad.CreateText(getRpad(len(message)))
oxCryptMessageScPayload := oxCryptMessageSc.CreateElement("payload")
oxCryptMessageScPayloadBody := oxCryptMessageScPayload.CreateElement("body")
oxCryptMessageScPayloadBody.CreateAttr("xmlns", nsJabberClient)

Loading…
Cancel
Save