yukimochi/Activity-Relay

activity posts larger then 3163 bytes fail (HTTP error 400)

on1arf opened this issue · 3 comments

All posts that are larger then 3163 bytes (bodylength) fail. The Activity-relay return HTTP error 400.

After inspection of the code, the issue seems to be in api/decode.go, function "decodeActivity"
If the body length is larger then 3163 octets, "request.Body.Read(body)" returns invalid data.

This is part of trouble-shooting code to print "body":

Note all the "0"'s at the end!

    // Verify Digest
    givenDigest := request.Header.Get("Digest")
    hash := sha256.New()
    hash.Write(body)
    b := hash.Sum(nil)
    calculatedDigest := "SHA-256=" + base64.StdEncoding.EncodeToString(b)

    fmt.Println(givenDigest);
    fmt.Println(calculatedDigest);
    fmt.Println(body);
    if givenDigest != calculatedDigest {
            return nil, nil, nil, errors.New("Digest header is mismatch")
    }

"""
server_1 | SHA-256=iQgJybiKRRWPym5HPOfE/P942FUufBAymJk/WAzrUeQ=
server_1 | SHA-256=WV8mIdNvchFafSwclH0995/n9lNncWYD8mKeXMzfIUc=
server_1 | [123 34 64 99 111 110 116 101 120 116 34 58 91 34 104 116 116 112 115 58 47 47 119 119 119 46 119 51 46 111 114 103 47 110 115 47 97 99 116 105 118 105 116 121 115 116 114 101 97 109 115 34 44 34 104 116 116 112 115 58 47 47 119 51 105 100 46 111 114 103 47 115 101 99 117 114 105 116 121 47 118 49 34 44 123 34 109 97 110 117 97 108 108 121 65 112 112 114 111 118 101 115 70 111 108 108 111 119 101 114 115 34 58 34 97 115 58 109 97 110 117 97 108 108 121 65 112 112 114 111 118 101 115 70 111 108 108 111 119 101 114 115 34 44 34 116 111 111 116 34 58 34 104 116 116 112 58 47 47 106 111 105 110 109 97 115 116 111 100 111 110 46 111 114 103 47 110 115 35 34 44 34 102 101 97 116 117 114 101 100 34 58 123 34 64 105 100 34 58 34 116 111 111 116 58 102 101 97 116 117 114 101 100 34 44 34 64 116 121 112 101 34 58 34 64 105 100 34 125 44 34 102 101 97 116 117 114 101 100 84 97 103 115 34 58 123 34 64 105 100 34 58 34 116 111 111 116 58 102 101 97 116 117 114 101 100 84 97 103 115 34 44 34 64 116 121 112 101 34 58 34 64 105 100 34 125 44 34 97 108 115 111 75 110 111 119 110 65 115 34 58 123 34 64 105 100 34 58 34 97 115 58 97 108 115 111 75 110 111 119 110 65 115 34 44 34 64 116 121 112 101 34 58 34 64 105 100 34 125 44 34 109 111 118 101 100 84 111 34 58 123 34 64 105 100 34 58 34 97 115 58 109 111 118 101 100 84 111 34 44 34 64 116 121 112 101 34 58 34 64 105 100 34 125 44 34 115 99 104 101 109 97 34 58 34 104 116 116 112 58 47 47 115 99 104 101 109 97 46 111 114 103 35 34 44 34 80 114 111 112 101 114 116 121 86 97 108 117 101 34 58 34 115 99 104 101 109 97 58 80 114 111 112 101 114 116 121 86 97 108 117 101 34 44 34 118 97 108 117 101 34 58 34 115 99 104 101 109 97 58 118 97 108 117 101 34 44 34 100 105 115 99 111 118 101 114 97 98 108 101 34 58 34 116 111 111 116 58 100 105 115 99 111 118 101 114 97 98 108 101 34 44 34 68 101 118 105 99 101 34 58 34 116 111 111 116 58 68 101 118 105 99 101 34 44 34 69 100 50 53 53 49 57 83 105 103 110 97 116 117 114 101 34 58 34 116 111 111 116 58 69 100 50 53 53 49 57 83 105 103 110 97 116 117 114 101 34 44 34 69 100 50 53 53 49 57 75 101 121 34 58 34 116 111 111 116 58 69 100 50 53 53 49 57 75 101 121 34 44 34 67 117 114 118 101 50 53 53 49 57 75 101 121 34 58 34 116 111 111 116 58 67 117 114 118 101 50 53 53 49 57 75 101 121 34 44 34 69 110 99 114 121 112 116 101 100 77 101 115 115 97 103 101 34 58 34 116 111 111 116 58 69 110 99 114 121 112 116 101 100 77 101 115 115 97 103 101 34 44 34 112 117 98 108 105 99 75 101 121 66 97 115 101 54 52 34 58 34 116 111 111 116 58 112 117 98 108 105 99 75 101 121 66 97 115 101 54 52 34 44 34 100 101 118 105 99 101 73 100 34 58 34 116 111 111 116 58 100 101 118 105 99 101 73 100 34 44 34 99 108 97 105 109 34 58 123 34 64 116 121 112 101 34 58 34 64 105 100 34 44 34 64 105 100 34 58 34 116 111 111 116 58 99 108 97 105 109 34 125 44 34 102 105 110 103 101 114 112 114 105 110 116 75 101 121 34 58 123 34 64 116 121 112 101 34 58 34 64 105 100 34 44 34 64 105 100 34 58 34 116 111 111 116 58 102 105 110 103 101 114 112 114 105 110 116 75 101 121 34 125 44 34 105 100 101 110 116 105 116 121 75 101 121 34 58 123 34 64 116 121 112 101 34 58 34 64 105 100 34 44 34 64 105 100 34 58 34 116 111 111 116 58 105 100 101 110 116 105 116 121 75 101 121 34 125 44 34 100 101 118 105 99 101 115 34 58 123 34 64 116 121 112 101 34 58 34 64 105 100 34 44 34 64 105 100 34 58 34 116 111 111 116 58 100 101 118 105 99 101 115 34 125 44 34 109 101 115 115 97 103 101 70 114 97 110 107 105 110 103 34 58 34 116 111 111 116 58 109 101 115 115 97 103 101 70 114 97 110 107 105 110 103 34 44 34 109 101 115 115 97 103 101 84 121 112 101 34 58 34 116 111 111 116 58 109 101 115 115 97 103 101 84 121 112 101 34 44 34 99 105 112 104 101 114 84 101 120 116 34 58 34 116 111 111 116 58 99 105 112 104 101 114 84 101 120 116 34 44 34 115 117 115 112 101 110 100 101 100 34 58 34 116 111 111 116 58 115 117 115 112 101 110 100 101 100 34 44 34 102 111 99 97 108 80 111 105 110 116 34 58 123 34 64 99 111 110 116 97 105 110 101 114 34 58 34 64 108 105 115 116 34 44 34 64 105 100 34 58 34 116 111 111 116 58 102 111 99 97 108 80 111 105 110 116 34 125 125 93 44 34 105 100 34 58 34 104 116 116 112 115 58 47 47 109 97 115 116 111 100 111 110 45 98 101 108 103 105 117 109 46 98 101 47 117 115 101 114 115 47 77 97 114 99 98 101 108 108 105 110 107 120 35 117 112 100 97 116 101 115 47 49 54 54 56 57 53 53 48 48 53 34 44 34 116 121 112 101 34 58 34 85 112 100 97 116 101 34 44 34 97 99 116 111 114 34 58 34 104 116 116 112 115 58 47 47 109 97 115 116 111 100 111 110 45 98 101 108 103 105 117 109 46 98 101 47 117 115 101 114 115 47 77 97 114 99 98 101 108 108 105 110 107 120 34 44 34 116 111 34 58 91 34 104 116 116 112 115 58 47 47 119 119 119 46 119 51 46 111 114 103 47 110 115 47 97 99 116 105 118 105 116 121 115 116 114 101 97 109 115 35 80 117 98 108 105 99 34 93 44 34 111 98 106 101 99 116 34 58 123 34 105 100 34 58 34 104 116 116 112 115 58 47 47 109 97 115 116 111 100 111 110 45 98 101 108 103 105 117 109 46 98 101 47 117 115 101 114 115 47 77 97 114 99 98 101 108 108 105 110 107 120 34 44 34 116 121 112 101 34 58 34 80 101 114 115 111 110 34 44 34 102 111 108 108 111 119 105 110 103 34 58 34 104 116 116 112 115 58 47 47 109 97 115 116 111 100 111 110 45 98 101 108 103 105 117 109 46 98 101 47 117 115 101 114 115 47 77 97 114 99 98 101 108 108 105 110 107 120 47 102 111 108 108 111 119 105 110 103 34 44 34 102 111 108 108 111 119 101 114 115 34 58 34 104 116 116 112 115 58 47 47 109 97 115 116 111 100 111 110 45 98 101 108 103 105 117 109 46 98 101 47 117 115 101 114 115 47 77 97 114 99 98 101 108 108 105 110 107 120 47 102 111 108 108 111 119 101 114 115 34 44 34 105 110 98 111 120 34 58 34 104 116 116 112 115 58 47 47 109 97 115 116 111 100 111 110 45 98 101 108 103 105 117 109 46 98 101 47 117 115 101 114 115 47 77 97 114 99 98 101 108 108 105 110 107 120 47 105 110 98 111 120 34 44 34 111 117 116 98 111 120 34 58 34 104 116 116 112 115 58 47 47 109 97 115 116 111 100 111 110 45 98 101 108 103 105 117 109 46 98 101 47 117 115 101 114 115 47 77 97 114 99 98 101 108 108 105 110 107 120 47 111 117 116 98 111 120 34 44 34 102 101 97 116 117 114 101 100 34 58 34 104 116 116 112 115 58 47 47 109 97 115 116 111 100 111 110 45 98 101 108 103 105 117 109 46 98 101 47 117 115 101 114 115 47 77 97 114 99 98 101 108 108 105 110 107 120 47 99 111 108 108 101 99 116 105 111 110 115 47 102 101 97 116 117 114 101 100 34 44 34 102 101 97 116 117 114 101 100 84 97 103 115 34 58 34 104 116 116 112 115 58 47 47 109 97 115 116 111 100 111 110 45 98 101 108 103 105 117 109 46 98 101 47 117 115 101 114 115 47 77 97 114 99 98 101 108 108 105 110 107 120 47 99 111 108 108 101 99 116 105 111 110 115 47 116 97 103 115 34 44 34 112 114 101 102 101 114 114 101 100 85 115 101 114 110 97 109 101 34 58 34 77 97 114 99 98 101 108 108 105 110 107 120 34 44 34 110 97 109 101 34 58 34 77 97 114 99 32 66 101 108 108 105 110 107 120 34 44 34 115 117 109 109 97 114 121 34 58 34 92 117 48 48 51 99 112 92 117 48 48 51 101 76 101 114 97 97 114 32 97 97 114 100 114 105 106 107 115 107 117 110 100 101 32 111 112 32 122 111 101 107 32 110 97 97 114 32 104 101 116 32 97 110 116 119 111 111 114 100 32 111 112 32 100 101 32 118 114 97 97 103 32 118 97 110 32 57 32 109 105 108 106 97 114 100 46 92 117 48 48 51 99 47 112 92 117 48 48 51 101 34 44 34 117 114 108 34 58 34 104 116 116 112 115 58 47 47 109 97 115 116 111 100 111 110 45 98 101 108 103 105 117 109 46 98 101 47 64 77 97 114 99 98 101 108 108 105 110 107 120 34 44 34 109 97 110 117 97 108 108 121 65 112 112 114 111 118 101 115 70 111 108 108 111 119 101 114 115 34 58 102 97 108 115 101 44 34 100 105 115 99 111 118 101 114 97 98 108 101 34 58 102 97 108 115 101 44 34 112 117 98 108 105 115 104 101 100 34 58 34 50 48 50 50 45 49 49 45 49 56 84 48 48 58 48 48 58 48 48 90 34 44 34 100 101 118 105 99 101 115 34 58 34 104 116 116 112 115 58 47 47 109 97 115 116 111 100 111 110 45 98 101 108 103 105 117 109 46 98 101 47 117 115 101 114 115 47 77 97 114 99 98 101 108 108 105 110 107 120 47 99 111 108 108 101 99 116 105 111 110 115 47 100 101 118 105 99 101 115 34 44 34 112 117 98 108 105 99 75 101 121 34 58 123 34 105 100 34 58 34 104 116 116 112 115 58 47 47 109 97 115 116 111 100 111 110 45 98 101 108 103 105 117 109 46 98 101 47 117 115 101 114 115 47 77 97 114 99 98 101 108 108 105 110 107 120 35 109 97 105 110 45 107 101 121 34 44 34 111 119 110 101 114 34 58 34 104 116 116 112 115 58 47 47 109 97 115 116 111 100 111 110 45 98 101 108 103 105 117 109 46 98 101 47 117 115 101 114 115 47 77 97 114 99 98 101 108 108 105 110 107 120 34 44 34 112 117 98 108 105 99 75 101 121 80 101 109 34 58 34 45 45 45 45 45 66 69 71 73 78 32 80 85 66 76 73 67 32 75 69 89 45 45 45 45 45 92 110 77 73 73 66 73 106 65 78 66 103 107 113 104 107 105 71 57 119 48 66 65 81 69 70 65 65 79 67 65 81 56 65 77 73 73 66 67 103 75 67 65 81 69 65 121 57 47 112 68 90 43 118 103 118 118 67 49 122 68 56 109 107 102 78 92 110 48 77 82 83 97 70 103 83 103 107 108 114 113 54 85 113 90 90 98 88 87 74 48 73 65 115 121 67 117 57 79 81 54 47 73 99 113 119 86 70 83 50 51 105 70 74 120 79 102 77 111 53 115 111 90 78 118 47 53 67 74 90 72 122 92 110 117 116 102 98 82 86 111 116 99 67 66 117 53 111 100 118 48 86 55 108 74 103 88 111 100 55 53 122 107 54 103 66 112 49 43 111 122 54 97 65 111 74 115 104 43 110 57 101 50 76 115 122 70 115 110 120 86 65 72 74 122 48 81 99 92 110 80 69 105 79 105 120 71 122 119 108 43 52 51 47 115 106 75 109 97 72 121 85 73 99 86 85 118 76 70 110 43 81 89 84 119 116 71 73 68 72 105 81 111 111 84 84 69 80 71 74 52 104 82 108 86 49 84 47 119 121 54 56 103 66 92 110 49 50 118 49 112 110 85 57 84 114 79 68 77 112 102 88 104 70 81 122 122 68 78 87 52 118 82 56 120 85 68 109 121 70 53 47 101 117 122 80 80 103 101 53 101 99 104 120 67 113 71 76 50 74 47 106 47 71 68 99 50 111 104 84 92 110 74 77 80 80 115 52 48 114 97 120 71 121 106 97 106 73 116 103 76 66 49 120 72 49 43 103 111 80 76 90 111 70 48 78 106 50 74 89 115 74 43 110 110 116 55 111 43 89 65 65 70 53 103 72 51 87 120 51 108 50 115 112 120 113 92 110 75 119 73 68 65 81 65 66 92 110 45 45 45 45 45 69 78 68 32 80 85 66 76 73 67 32 75 69 89 45 45 45 45 45 92 110 34 125 44 34 116 97 103 34 58 91 93 44 34 97 116 116 97 99 104 109 101 110 116 34 58 91 93 44 34 101 110 100 112 111 105 110 116 115 34 58 123 34 115 104 97 114 101 100 73 110 98 111 120 34 58 34 104 116 116 112 115 58 47 47 109 97 115 116 111 100 111 110 45 98 101 108 103 105 117 109 46 98 101 47 105 110 98 111 120 34 125 44 34 105 99 111 110 34 58 123 34 116 121 112 101 34 58 34 73 109 97 103 101 34 44 34 109 101 100 105 97 84 121 112 101 34 58 34 105 109 97 103 101 47 119 101 98 112 34 44 34 117 114 108 34 58 34 104 116 116 112 115 58 47 47 109 97 115 116 111 100 111 110 45 98 101 108 103 105 117 109 46 98 101 47 115 121 115 116 101 109 47 97 99 99 111 117 110 116 115 47 97 118 97 116 97 114 115 47 49 48 57 47 51 54 54 47 48 54 55 47 52 49 50 47 51 48 52 47 54 55 51 47 111 114 105 103 105 110 97 108 47 101 57 49 57 48 57 52 102 49 98 56 54 49 57 56 100 46 119 101 98 112 34 125 44 34 105 109 97 103 101 34 58 123 34 116 121 112 101 34 58 34 73 109 97 103 101 34 44 34 109 101 100 105 97 84 121 112 101 34 58 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
"""

Note, I am using docker.
I ran "tcpdump" on the ethernet to inspect the packet as it is being received, the message -as received by the ethernet interface- is complete and correct.
(I can provide some dumps if needed)

Thank you for your report.

I was able to reproduce and fix it.
I have released v1.1.2 to fix this issue.

Wauw.. that was fast!!!! 👍
And that at this time of day for you in Japan!!!
It works!!! Thanks!!!!