Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v2.0.6 armv7 ja4 error #438

Closed
deedy5 opened this issue Feb 15, 2025 · 49 comments
Closed

v2.0.6 armv7 ja4 error #438

deedy5 opened this issue Feb 15, 2025 · 49 comments
Labels
spam Offensive users

Comments

@deedy5
Copy link
Contributor

deedy5 commented Feb 15, 2025

https://github.com/deedy5/primp/actions/runs/13348571329/job/37282139615

@deedy5 deedy5 changed the title v2.0.7 armv7 ja4 error v2.0.6 armv7 ja4 error Feb 15, 2025
@0x676e67
Copy link
Owner

This architecture problem is incredible. What has changed by printing out the complete response first?

@deedy5
Copy link
Contributor Author

deedy5 commented Feb 15, 2025

v2.0.5 builds without errors, v2.0.6 with an error:

assert json_data["tls"]["ja4"] == "t13d1516h2_8daaf6152771_b1ff8ab2d16f"
  E       AssertionError: assert 't13d1516h2_8..._fca9c764716e' == 't13d1516h2_8..._b1ff8ab2d16f'
  E         
  E         - t13d1516h2_8daaf6152771_b1ff8ab2d16f
  E         ?                         -- ^^ ^^^  ^
  E         + t13d1516h2_8daaf6152771_fca9c764716e
  E         ?                          ^ ^^^^^^  ^

So you need to look here - v2.0.5...v2.0.6

@0x676e67
Copy link
Owner

0x676e67 commented Feb 15, 2025

Comparing only ja3/ja4 is often meaningless, just like the new version of Firefox browser, maintaining TLS session will change the extension, and then the calculated value of these fingerprint strings will change. So it is useless and can only be used as a reference. Ultimately, you need to compare all the extensions set.

I'm talking about this complete response:

{
  "donate": "Please consider donating to keep this API running. Visit https://tls.peet.ws",
  "ip": "198.18.2.16:42408",
  "http_version": "h2",
  "method": "GET",
  "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36",
  "tls": {
    "ciphers": [
      "TLS_GREASE (0x6A6A)",
      "TLS_AES_128_GCM_SHA256",
      "TLS_AES_256_GCM_SHA384",
      "TLS_CHACHA20_POLY1305_SHA256",
      "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
      "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
      "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
      "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
      "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256",
      "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
      "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
      "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
      "TLS_RSA_WITH_AES_128_GCM_SHA256",
      "TLS_RSA_WITH_AES_256_GCM_SHA384",
      "TLS_RSA_WITH_AES_128_CBC_SHA",
      "TLS_RSA_WITH_AES_256_CBC_SHA"
    ],
    "extensions": [
      {
        "name": "TLS_GREASE (0x8a8a)"
      },
      {
        "name": "supported_versions (43)",
        "versions": [
          "TLS_GREASE (0xeaea)",
          "TLS 1.3",
          "TLS 1.2"
        ]
      },
      {
        "name": "supported_groups (10)",
        "supported_groups": [
          "TLS_GREASE (0x9a9a)",
          "X25519MLKEM768 (4588)",
          "X25519 (29)",
          "P-256 (23)",
          "P-384 (24)"
        ]
      },
      {
        "name": "signature_algorithms (13)",
        "signature_algorithms": [
          "ecdsa_secp256r1_sha256",
          "rsa_pss_rsae_sha256",
          "rsa_pkcs1_sha256",
          "ecdsa_secp384r1_sha384",
          "rsa_pss_rsae_sha384",
          "rsa_pkcs1_sha384",
          "rsa_pss_rsae_sha512",
          "rsa_pkcs1_sha512"
        ]
      },
      {
        "name": "compress_certificate (27)",
        "algorithms": [
          "brotli (2)"
        ]
      },
      {
        "name": "application_settings (17613)",
        "protocols": [
          "h2"
        ]
      },
      {
        "name": "session_ticket (35)",
        "data": ""
      },
      {
        "name": "status_request (5)",
        "status_request": {
          "certificate_status_type": "OSCP (1)",
          "responder_id_list_length": 0,
          "request_extensions_length": 0
        }
      },
      {
        "name": "extensionEncryptedClientHello (boringssl) (65037)",
        "data": "0000010001bf0020bd47b8de5a0bacdb99a8797c2dc12f11cd4e71003c1fbfd4c787ac0e27bd045400b0a747ad1b7b4b89e88b573090f2f3230580e6a3771e58726bc87dbcf2e4fba67b96222873a27f30ca0334dd1f65e1a4401205929fb890a524d9de078fddb37560d13ee360259618986f2ad18fcdef95d1a7f84e2ec49c455c52e6a6ada0df612765a63955fcc7cec5fe1aa5c77ba82a6995959831bbff47ed8726beb5f10f8b89e421e5662e7a365c626530112b94ff8169f69ad138b769d0baa8975fd21f42b512a57b02cac246eb9592c189ed3813d2"
      },
      {
        "name": "key_share (51)",
        "shared_keys": [
          {
            "TLS_GREASE (0x9a9a)": "00"
          },
          {
            "X25519MLKEM768 (4588)": "8cb145332313e8b4bd03a880f6fca127c3315ce835f4203866a5aa63103bdb04b1700b203a635f34f89f260acaf10acff906a361854a5a1c021ca219d1aa99296916702924b1159e2112ca9a0a073ce13c0a0c2705a96fb5545bedc9a43a8558c2cca607950f47693c6aa67dc78b17a1079bf618591839592cc745bf854b010c6cd5b92a344a8e1ac87db043cbfe98107f064b0bfc9eb339a02aa75f30b49d431c186faa3cf46690ed4ccb04a398cfe274a2191f2596571bea3d46ab4acd959fae00439a8a96efeb24d79a88e5a74f358b717f14c28983a39daa0c27176edb59be5d7b27d524a1de47467314a3097c788f85577ce680a634307fbba10520acbad1a6670b802d4683df933a3de903bfa197ad506a47930b72ba4370786ed068727758bf7fa11ea0a26e6549ca64c17bbddbaa22593ed8482553166862504df95665218a026e2909900095c3fa203de0741e1357cfd77918216cd5aa0bce2b1c1e6a4c9a98b66259bf5dc585b778566cb192c1aa7a21c86bdd94ca70a571efe7b350aa8a9114bc7d086199f15e6e907e42bba4f5fc6a41886128310333d16f23f99d9a7233ce5998128c06672c42e77b096fd58260811345e9cce8d69f8f810a4cd74e3f577bc5948393267d4f73a7b9d64115485cde23598e5891b6363da19ac90808861ffa5cdfb7a7b4f952ea0227c9a89f4de30324e09a5057aba3144e1989470ee5ab37247e8e979dc833cecd067854007044a040ee4c2f1e70a2a6139d9790b1dbbcca5d66815e4720aa831a44770b1e52aa1df207abb8a1e13743efd956545bc09a5483f38682976b6d24e22883a1c05d075d15e08e46e97f4525460437374e8998b6e87626f35739a965d4dc5b41f156a2c1af82328d6f2033f0c44b5af7392f45c2ca2b7ef6d82825992ab7ec2eef505390827816312bfb7b99f74b34f28a477ae2bd05265542159e48bb6446768267492294777a758857585342ad830bfeec2eb1a2856dca36731318e19b962df7823bd411df0625953403b73a33e2b7891bf04921189a6007900102c8fc07cb97e6868de22867284bced0a55c30cef8f3930938a3ab063e55547b07509e79f04df6270fe3d20f94b743b7f0b57445853fbb643073c64b54075e632fdc818606c803e29375e0591f26479089098a92c9869bb29d441a4e6144c0a767b5ef3847ca7493ec44ce489abcc18628f5e67db7c8a7acb1802401ca9cc59b4470ba8f3c8653e7a09179ccdb930e7c53b0d99a999855cab3f28b70458b90b763cc9172b4d22151f741ca62a7753635ee6ba15557300b91b29c1c572a142221b88c0d30b5d3835a8324973ffa177f7a14c253be3df31d3ac00aa0589a3a59594429867e43a3ca5c3ad5eba86541993be015d90310f831c00ad9bebbb4728fe802b705501a603901d4bfa0da2f0c53a19965bc3d8361d3905c5061ce3051b94199ce37442bbf14b9a39239be15599762a8a918abb54267d38c2b1a3403b422a2e828b6f4aa98a02a36dcb5695db8aea0c9cdd426ce45123d8cc846b82591d2c102866396b551608f1ac31f2b85eb3cc9dec7ce62330c3a75924cb052b93565d991c031ac1e0378c3234c6d397b75589517fed9037cc2f5687df5e3e73fa1729e49646cc630220f322137399f1a65c9d533be6d9aa1bc5f13eb89ea0e2d2c4e341f67de58ccb40e9df8b2f584d9dd595883972620"
          },
          {
            "X25519 (29)": "602e7a18d46c4deda8d3db04a713eb9cb94910be24655db302cf0b86e358bd14"
          }
        ]
      },
      {
        "name": "signed_certificate_timestamp (18)"
      },
      {
        "name": "extensionRenegotiationInfo (boringssl) (65281)",
        "data": "00"
      },
      {
        "name": "ec_point_formats (11)",
        "elliptic_curves_point_formats": [
          "0x00"
        ]
      },
      {
        "name": "psk_key_exchange_modes (45)",
        "PSK_Key_Exchange_Mode": "PSK with (EC)DHE key establishment (psk_dhe_ke) (1)"
      },
      {
        "name": "server_name (0)",
        "server_name": "tls.peet.ws"
      },
      {
        "name": "application_layer_protocol_negotiation (16)",
        "protocols": [
          "h2",
          "http/1.1"
        ]
      },
      {
        "name": "extended_master_secret (23)",
        "master_secret_data": "",
        "extended_master_secret_data": ""
      },
      {
        "name": "TLS_GREASE (0x5a5a)"
      },
      {
        "name": "pre_shared_key (41)",
        "data": "0077007188215f9d9d080ecb63d784dadaa392be95f98debbf09a37f789e8b6dd890f648045167dac7b69b24976c66e84a75ed2815dbf7c2213c11267b80289223d09252d9fcf0a88a6316180360b3c9defc433b76447579c27713fb3229563f2e8f8dbd8c2950b8824e4d617760c0fb37d6de84cc20ac593d0021208b51b06ede467d05daca449ac89d7ac92d8721beae00f28d246af5012c26c02a"
      }
    ],
    "tls_version_record": "771",
    "tls_version_negotiated": "772",
    "ja3": "771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,43-10-13-27-17613-35-5-65037-51-18-65281-11-45-0-16-23-41,4588-29-23-24,0",
    "ja3_hash": "dfe1822a9589fbd5003ff9a8acbc097d",
    "ja4": "t13d1517h2_8daaf6152771_38c0db7568a3",
    "ja4_r": "t13d1517h2_002f,0035,009c,009d,1301,1302,1303,c013,c014,c02b,c02c,c02f,c030,cca8,cca9_0005,000a,000b,000d,0012,0015,0017,001b,0023,0029,002b,002d,0033,44cd,fe0d,ff01_0403,0804,0401,0503,0805,0501,0806,0601",
    "peetprint": "GREASE-772-771|2-1.1|GREASE-4588-29-23-24|1027-2052-1025-1283-2053-1281-2054-1537|1|2|GREASE-4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53|0-10-11-13-16-17613-18-23-27-35-41-43-45-5-51-65037-65281-GREASE-GREASE",
    "peetprint_hash": "d44d68f0fce54cd423d6792272a242b8",
    "client_random": "5854c39a89e9a4a11a1cc35ca0bb50c9e070f57b81dbe03dba6f95e11c75e1ea",
    "session_id": "93e7b492df9cc7b3f8278b416ce4103ea3e7d258f364c50445c72ca7fddf39c8"
  },
  "http2": {
    "akamai_fingerprint": "1:65536;2:0;4:6291456;6:262144|15663105|0|m,a,s,p",
    "akamai_fingerprint_hash": "52d84b11737d980aef856699f885ca86",
    "sent_frames": [
      {
        "frame_type": "SETTINGS",
        "length": 24,
        "settings": [
          "HEADER_TABLE_SIZE = 65536",
          "ENABLE_PUSH = 0",
          "INITIAL_WINDOW_SIZE = 6291456",
          "MAX_HEADER_LIST_SIZE = 262144"
        ]
      },
      {
        "frame_type": "WINDOW_UPDATE",
        "length": 4,
        "increment": 15663105
      },
      {
        "frame_type": "HEADERS",
        "stream_id": 1,
        "length": 516,
        "headers": [
          ":method: GET",
          ":authority: tls.peet.ws",
          ":scheme: https",
          ":path: /api/all",
          "sec-ch-ua: \\\"Not(A:Brand\\\";v=\\\"99\\\", \\\"Google Chrome\\\";v=\\\"133\\\", \\\"Chromium\\\";v=\\\"133\\",
          "sec-ch-ua-mobile: ?0",
          "sec-ch-ua-platform: \\\"macOS\\",
          "dnt: 1",
          "upgrade-insecure-requests: 1",
          "user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36",
          "sec-purpose: prefetch;prerender",
          "purpose: prefetch",
          "accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
          "sec-fetch-site: none",
          "sec-fetch-mode: navigate",
          "sec-fetch-user: ?1",
          "sec-fetch-dest: document",
          "accept-encoding: gzip, deflate, br, zstd",
          "accept-language: zh-CN,zh;q=0.9,en;q=0.8",
          "priority: u=0, i"
        ],
        "flags": [
          "EndStream (0x1)",
          "EndHeaders (0x4)",
          "Priority (0x20)"
        ],
        "priority": {
          "weight": 256,
          "depends_on": 0,
          "exclusive": 1
        }
      }
    ]
  },
  "tcpip": {
    "ip": {},
    "tcp": {}
  }
}
``

@0x676e67
Copy link
Owner

That's why you need to print the full response to see what has changed. The connection pool only distinguishes between http1 and http2 versions of the connection, and there is no problem with other architectures. This is the incredible problem

@0x676e67
Copy link
Owner

That's why you need to print the full response to see what has changed. The connection pool only distinguishes between http1 and http2 versions of the connection, and there is no problem with other architectures. This is the incredible problem

In the past, under the same host, if the connection pool was not closed, if the negotiated request version was HTTP1 when accessing the connection for the first time, then the second request would reuse the HTTP1 connection regardless of the version set.

@deedy5
Copy link
Contributor Author

deedy5 commented Feb 15, 2025

I'll make a new workflow for armv7 to get full answers as soon as possible

@0x676e67
Copy link
Owner

0x676e67 commented Feb 15, 2025

Also, have you used https://tls.http.rw/api/all and compared it with https://tls.peet.ws/api/all?

The original author is https://tls.peet.ws/api/all, and it has been updated. However, some TLS extensions displayed in https://tls.http.rw/api/all are still outdated.

This is also a problem that needs to be eliminated.

@0x676e67
Copy link
Owner

0x676e67 commented Feb 16, 2025

And there is no problem with my binding library.

import asyncio
from rnet import Impersonate, Client


async def main():
    client = Client(
        impersonate=Impersonate.Chrome131,
        user_agent="rnet",
    )
    resp = await client.get("https://tls.peet.ws/api/all")
    print("Status Code: ", resp.status_code)
    print("Version: ", resp.version)
    print("Response URL: ", resp.url)
    print("Headers: ", resp.headers.to_dict())
    print("Content-Length: ", resp.content_length)
    print("Encoding: ", resp.encoding)
    print("Remote Address: ", resp.remote_addr)
    text = await resp.text()
    print(text)


if __name__ == "__main__":
    asyncio.run(main())
$ docker run --rm -it --platform linux/arm/v7 arm32v7/python:3.9-alpine /bin/sh                                                             [9:38:02]
/ # uname -a
Linux 92b3008a24c6 6.10.12-orbstack-00282-gd1783374c25e #7 SMP Wed Oct  2 10:16:55 UTC 2024 armv7l Linux
/ # apk add vim
fetch https://dl-cdn.alpinelinux.org/alpine/v3.21/main/armv7/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.21/community/armv7/APKINDEX.tar.gz
(1/3) Installing vim-common (9.1.1105-r0)
(2/3) Installing xxd (9.1.1105-r0)
(3/3) Installing vim (9.1.1105-r0)
Executing busybox-1.37.0-r12.trigger
OK: 36 MiB in 41 packages
/ # vim client.py
/ # pip install asyncio rnet
Collecting asyncio
  Downloading asyncio-3.4.3-py3-none-any.whl (101 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 101.8/101.8 kB 3.8 MB/s eta 0:00:00
Collecting rnet
  Downloading rnet-0.2.3-cp39-abi3-musllinux_1_2_armv7l.whl (3.0 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.0/3.0 MB 5.8 MB/s eta 0:00:00
Installing collected packages: asyncio, rnet
Successfully installed asyncio-3.4.3 rnet-0.2.3
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

[notice] A new release of pip is available: 23.0.1 -> 25.0.1
[notice] To update, run: pip install --upgrade pip
/ # pip install asyncio rnet
Requirement already satisfied: asyncio in /usr/local/lib/python3.9/site-packages (3.4.3)
Requirement already satisfied: rnet in /usr/local/lib/python3.9/site-packages (0.2.3)
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

[notice] A new release of pip is available: 23.0.1 -> 25.0.1
[notice] To update, run: pip install --upgrade pip
/ # python3 client.py
Status Code:  200
Version:  HTTP/2.0
Response URL:  https://tls.peet.ws/api/all
Headers:  {'server': b'TrackMe.peet.ws', 'content-length': b'9341', 'content-type': b'application/json'}
Content-Length:  9341
Encoding:  utf-8
Remote Address:  198.18.2.16:443
{
  "donate": "Please consider donating to keep this API running. Visit https://tls.peet.ws",
  "ip": "198.18.2.16:443",
  "http_version": "h2",
  "method": "GET",
  "user_agent": "rnet",
  "tls": {
    "ciphers": [
      "TLS_GREASE (0x3A3A)",
      "TLS_AES_128_GCM_SHA256",
      "TLS_AES_256_GCM_SHA384",
      "TLS_CHACHA20_POLY1305_SHA256",
      "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
      "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
      "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
      "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
      "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256",
      "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
      "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
      "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
      "TLS_RSA_WITH_AES_128_GCM_SHA256",
      "TLS_RSA_WITH_AES_256_GCM_SHA384",
      "TLS_RSA_WITH_AES_128_CBC_SHA",
      "TLS_RSA_WITH_AES_256_CBC_SHA"
    ],
    "extensions": [
      {
        "name": "TLS_GREASE (0xfafa)"
      },
      {
        "name": "supported_groups (10)",
        "supported_groups": [
          "TLS_GREASE (0xeaea)",
          "X25519MLKEM768 (4588)",
          "X25519 (29)",
          "P-256 (23)",
          "P-384 (24)"
        ]
      },
      {
        "name": "key_share (51)",
        "shared_keys": [
          {
            "TLS_GREASE (0xeaea)": "00"
          },
          {
            "X25519MLKEM768 (4588)": "c8b5377ef6469e309da114b153e99df5e26a9a21b2e9e8c30c010ee941ae936902c71346e1144cf33105086249c8316809b583d2215a82a72496a0066c771ff626a9c7288a0ee8b9dc954985b9b845b8a4d7a42bd85a22caa567d5530139ba5c29c45cad8232ba8c53cbb654c41c6763bcb3afc5c394106cd536489eb1a48bd4956ff2859b5144d1f33c74701435cb3561a5959edb5e3673b20700b521b2034a89388440280a9c9caf791c52a2046ca84c74a03afbac9c9d3a4092a3b9eb5b39a423240d203d163b7624d858e10a7c093a22f20747b203404e3325fbcc7bdc53366176a2986a6f40fc999a244039e843c9270fedaa8fce228eb2712eb6b857f76cb4b4894062aac72172653a265e0f908f56f55246dc41c751cf19f16314f62973444283b3b159bc9978428ec0859f34d9483b341172e822f959593d095a008bbeff45cbc6f0c0d64b0d88853a514512bdb22a7cc605f8474cd6706252111ba4c05887b50a95130c4b9173b3c0bc5464c14ed605d90091b3a93b79f184858c1fb9fc3756b8768fd479597905c4ea30d589b841a5960fe0c1693a9d9479ba9bb053ffa4583b7b4f79158ef2db05aed54332b8c1ea309668ea171eb740007233c2436ddb421c716112f00a5be888bdcfac2c72a40f2620b151b063d089cc682b07a45a829540693132b311699fb9734b1a638b833837eaa520e065242ceb36e5e980902596b64cc6b820a15d7c5fe3c82f3cfcbe589a5e45db59fe203c5a31bf4e9256bafb720ab5918a903cc45b012094829843cf31daa4c3328858e1cb4b416d5b3c8ca68b6fdcc7108d147f856a6e0f8b1eae25bf93b486a4398d8a41a698a2a64709249ffcbb2a5b709d88723a7380c79177700c960f512aeaf47dbc5c55ef1c8408ab478e3400e6e89b92408614400875d4ab83d717ec073f88f60d1f42ace95bb7792c2b00c74e40f623e5418364f3c1fce662bec9468486bcc1e954e3599181f9b1b9ec7a376c0870c0816c744d502438f8dc83126a9ec3992e24f943b58c3d85a79f10965ec3318bc0946bcc170072b8253c6905735b66b48b58a85598ee62b8f26aaf2dd2272b036c1b801882f88765287db6a826b21a2dcb72ac93720b50239778db930721c806a80277812a5bba5721e66eb3150d86d68bc814198c7c9c878b8017033b080c277bb229f9c40f20744fa4e84ca96b010c808e0eb2aa55965522d2750c57cccc6529e00ac7bdc91697151dfe99622c89014ed12ed0e662be5a76eff1495f955ad677ac9bc188f08a7066bc8c01c0a55c4b979ab70beea9b91d0c1f70470d860c85ed9174b5d9abc191cd9f9993aa4b0027451251c4a44812991599086d8237caab81f674396b77bbf506b4b2a043e1908ac3725981f8a8ba9265761536159a9323b07cc87247ccec9811617e32d9bdf40a19a7273905c8a4ec111ea4c669bc97c84a802491e883fb347772f7337fd3942ca6c98fd22fd9ac80b850a71b1b73e6e586581265031696beb3322eac80d3569396478aeae7003c78c307fa872d1a4ce1109f9316a0b7457de3f1a9f1c64bca58c6b965bc633a533e3b9ca9f20cc34c5213206f912203f3154b0fe133b67b3226b49300c358b7b744e44295108e8507b793fcfac253861c893202dcca81bbcc68124e3f200eabeac906a8e19d0a3ce2ae0478350c5d332c8d14b35327da2ad14625ad2ed639"
          },
          {
            "X25519 (29)": "2239877182f73a15a76dd31b81c7b2f87bc87c09587806ae6dc79be24c80cb75"
          }
        ]
      },
      {
        "name": "ec_point_formats (11)",
        "elliptic_curves_point_formats": [
          "0x00"
        ]
      },
      {
        "name": "application_settings_old (17513)",
        "protocols": [
          "h2"
        ]
      },
      {
        "name": "signed_certificate_timestamp (18)"
      },
      {
        "name": "extensionEncryptedClientHello (boringssl) (65037)",
        "data": "00000100013900202f501baa0a2b874e692209652c77718ae8715046238af5ad6274869e135edb2100d0b1476c119bdc58ed399cdc4a89415f1c9df3df0e9c4a798e71aecacc820fab05f3fbc33c8d6209df47aebdfcb808a211f61aa14911837924e2d2f1cc7a8bca531bc609f6634659dca9652afda449c1c49ee6f89a7ced186ceca022b0ffba106a555b3f616606ebff0d15f22d7e917b871c05f5849eeeeeb08580155b0c82cf1812d2a5f54dd088b56d5fe123579237fc75985347bb0ed6baf771be5aae0750de1272cc30ee1f84901c51f32eb4f4fb6d1441437a2a675ba43d22b446ea4e4ccb20df088b02ba529a9daddfb131ac1200"
      },
      {
        "name": "signature_algorithms (13)",
        "signature_algorithms": [
          "ecdsa_secp256r1_sha256",
          "rsa_pss_rsae_sha256",
          "rsa_pkcs1_sha256",
          "ecdsa_secp384r1_sha384",
          "rsa_pss_rsae_sha384",
          "rsa_pkcs1_sha384",
          "rsa_pss_rsae_sha512",
          "rsa_pkcs1_sha512"
        ]
      },
      {
        "name": "psk_key_exchange_modes (45)",
        "PSK_Key_Exchange_Mode": "PSK with (EC)DHE key establishment (psk_dhe_ke) (1)"
      },
      {
        "name": "session_ticket (35)",
        "data": ""
      },
      {
        "name": "compress_certificate (27)",
        "algorithms": [
          "brotli (2)"
        ]
      },
      {
        "name": "extended_master_secret (23)",
        "master_secret_data": "",
        "extended_master_secret_data": ""
      },
      {
        "name": "status_request (5)",
        "status_request": {
          "certificate_status_type": "OSCP (1)",
          "responder_id_list_length": 0,
          "request_extensions_length": 0
        }
      },
      {
        "name": "application_layer_protocol_negotiation (16)",
        "protocols": [
          "h2",
          "http/1.1"
        ]
      },
      {
        "name": "server_name (0)",
        "server_name": "tls.peet.ws"
      },
      {
        "name": "supported_versions (43)",
        "versions": [
          "TLS_GREASE (0x2a2a)",
          "TLS 1.3",
          "TLS 1.2"
        ]
      },
      {
        "name": "extensionRenegotiationInfo (boringssl) (65281)",
        "data": "00"
      },
      {
        "name": "TLS_GREASE (0x4a4a)"
      }
    ],
    "tls_version_record": "771",
    "tls_version_negotiated": "772",
    "ja3": "771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,10-51-11-17513-18-65037-13-45-35-27-23-5-16-0-43-65281,4588-29-23-24,0",
    "ja3_hash": "f742910bd808b51f2eb7f4d378f75b64",
    "ja4": "t13d1516h2_8daaf6152771_b1ff8ab2d16f",
    "ja4_r": "t13d1516h2_002f,0035,009c,009d,1301,1302,1303,c013,c014,c02b,c02c,c02f,c030,cca8,cca9_0005,000a,000b,000d,0012,0015,0017,001b,0023,002b,002d,0033,4469,fe0d,ff01_0403,0804,0401,0503,0805,0501,0806,0601",
    "peetprint": "GREASE-772-771|2-1.1|GREASE-4588-29-23-24|1027-2052-1025-1283-2053-1281-2054-1537|1|2|GREASE-4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53|0-10-11-13-16-17513-18-23-27-35-43-45-5-51-65037-65281-GREASE-GREASE",
    "peetprint_hash": "7466733991096b3f4e6c0e79b0083559",
    "client_random": "86bdbe666998553620ea50df28332448c94bf4e32d50f64f75ae38af77bffb3f",
    "session_id": "2dd95497cf1887a940c06b45a7bf3d380256bf984b07ac901e687343b8b24ede"
  },
  "http2": {
    "akamai_fingerprint": "1:65536;2:0;4:6291456;6:262144|15663105|0|m,a,s,p",
    "akamai_fingerprint_hash": "52d84b11737d980aef856699f885ca86",
    "sent_frames": [
      {
        "frame_type": "SETTINGS",
        "length": 24,
        "settings": [
          "HEADER_TABLE_SIZE = 65536",
          "ENABLE_PUSH = 0",
          "INITIAL_WINDOW_SIZE = 6291456",
          "MAX_HEADER_LIST_SIZE = 262144"
        ]
      },
      {
        "frame_type": "WINDOW_UPDATE",
        "length": 4,
        "increment": 15663105
      },
      {
        "frame_type": "HEADERS",
        "stream_id": 1,
        "length": 361,
        "headers": [
          ":method: GET",
          ":authority: tls.peet.ws",
          ":scheme: https",
          ":path: /api/all",
          "accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
          "accept-encoding: gzip, deflate, br, zstd",
          "accept-language: en-US,en;q=0.9",
          "priority: u=0, i",
          "sec-ch-ua: \\\"Google Chrome\\\";v=\\\"131\\\", \\\"Chromium\\\";v=\\\"131\\\", \\\"Not_A Brand\\\";v=\\\"24\\",
          "sec-ch-ua-mobile: ?0",
          "sec-ch-ua-platform: \\\"macOS\\",
          "sec-fetch-dest: document",
          "sec-fetch-mode: navigate",
          "sec-fetch-site: none",
          "upgrade-insecure-requests: 1",
          "user-agent: rnet"
        ],
        "flags": [
          "EndStream (0x1)",
          "EndHeaders (0x4)",
          "Priority (0x20)"
        ],
        "priority": {
          "weight": 256,
          "depends_on": 0,
          "exclusive": 1
        }
      }
    ]
  },
  "tcpip": {
    "ip": {},
    "tcp": {}
  }
}
/ #

@deedy5
Copy link
Contributor Author

deedy5 commented Feb 16, 2025

Your answer is irrelevant to the question. The question is why version 2.0.5 builds without errors, but 2.0.6 builds with errors.

Instead of making open and transparent tests so that everyone can make sure that the fingerprints match browsers, you add a bunch of wrappers and overcomplicate your code, constantly changing structures and methods so that it is impossible to understand it.

Am I supposed to take your word for it that your code emulates a browser? Why do I have to flip through a bunch of your wrappers every time? You show an example on your library, but it's built on a custom docker. Do I have to spend a week figuring out why your docker builds the library without errors?

You should add tests to check that your code really emulates the browser.

@0x676e67
Copy link
Owner

Now you should print out the full response or give up using it.

@0x676e67
Copy link
Owner

You don't even have a log response. Is this asking me to tell your fortune? What does just one string represent? Does this help solve the problem? I don't think you should use this library. The best solution is to delete the package and use curl-cffi.

@0x676e67
Copy link
Owner

You don't even understand the basic principles of TLS connection. Are you solving the problem? I don't owe you anything. You don't have to use it.

@deedy5
Copy link
Contributor Author

deedy5 commented Feb 16, 2025

What kind of log do you need? The tests build on 2.0.5, but on 2.0.6 armv7 throws an error.
https://github.com/deedy5/primp/blob/18078ea7611158d8ec46fd0e72facb4950b06466/tests/test_client.py#L244C1-L262C84
https://github.com/deedy5/primp/actions/runs/13348571329/job/37282139615

Your code is a fork of this library https://github.com/ignassew/reqwest-impersonate-okhttp, but you make it look like your own. Yes, you put a bunch of wrappers on it and added functionality, but you made it overcomplicated.

As for curl_cffi, I used to use it, but at some point it started being detected as a bot.

You don't need to be offended with me, you need to add validity tests for fingerprints to make sure the code emulates the browser.

@0x676e67
Copy link
Owner

I asked you to print the complete response, did you do it? How can you know what happened and why it happened just by looking at a ja4, instead of just looking at my commit that caused the problem?

@0x676e67
Copy link
Owner

You are wrong, my repository was originally based on: https://github.com/4JX/reqwest-impersonate

@0x676e67
Copy link
Owner

You can do it yourself, and that's why you attack me? What did you do?

@0x676e67
Copy link
Owner

Why should I follow your wishes and develop for you? Are you my boss?

@0x676e67
Copy link
Owner

This is an open source library, what have you contributed to upstream? What are you doing when I am fixing the code upstream?

@0x676e67
Copy link
Owner

This is not the reason why you feel complicated about the library. I have seen your code, which is quite simple. You can always use one version without upgrading. These upgrades are of no use to you, which means you don't need them at all.

@deedy5
Copy link
Contributor Author

deedy5 commented Feb 16, 2025

This is pure offtopic and I don't like not only your programming style but also your communication style. You talk about open code, but you make it in such a way that nobody can understand it.

I just want you to add tests to your library.

@0x676e67
Copy link
Owner

So I'm asking you to send me the TLS response log so I can see what happened and why it happened. You must be deviating from the topic. Aren't you saying so much just to provoke me?

@deedy5
Copy link
Contributor Author

deedy5 commented Feb 16, 2025

My code is simple, but you took my github workflow to bash your python bindings.

@0x676e67
Copy link
Owner

@0x676e67
Copy link
Owner

You are totally hilarious, does that mean I can't use the same code as you? Like you forked my repository

@0x676e67
Copy link
Owner

I noticed that you like updating my repository very much. You basically synchronize my repository every week. Doesn't this mean that you like it very much?

@0x676e67
Copy link
Owner

I only have one request now, send me the TLS response, otherwise close this topic, it will not help solve the problem

@deedy5
Copy link
Contributor Author

deedy5 commented Feb 16, 2025

@0x676e67
Copy link
Owner

@0x676e67

This comment has been minimized.

@0x676e67

This comment has been minimized.

@0x676e67

This comment has been minimized.

@deedy5
Copy link
Contributor Author

deedy5 commented Feb 16, 2025

{
    "donate": "Please consider donating to keep this API running. Visit https://tls.peet.ws/",
    "ip": "20.43.247.174:44097",
    "http_version": "h2",
    "method": "GET",
    "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36",
    "tls": {
      "ciphers": [
        "TLS_GREASE (0x5A5A)",
        "TLS_AES_128_GCM_SHA256",
        "TLS_AES_256_GCM_SHA384",
        "TLS_CHACHA20_POLY1305_SHA256",
        "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
        "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
        "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
        "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
        "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256",
        "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
        "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
        "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
        "TLS_RSA_WITH_AES_128_GCM_SHA256",
        "TLS_RSA_WITH_AES_256_GCM_SHA384",
        "TLS_RSA_WITH_AES_128_CBC_SHA",
        "TLS_RSA_WITH_AES_256_CBC_SHA"
      ],
      "extensions": [
        {
          "name": "TLS_GREASE (0xcaca)"
        },
        {
          "name": "server_name (0)",
          "server_name": "tls.peet.ws"
        },
        {
          "name": "signature_algorithms (13)",
          "signature_algorithms": [
            "ecdsa_secp256r1_sha256",
            "rsa_pss_rsae_sha256",
            "rsa_pkcs1_sha256",
            "ecdsa_secp384r1_sha384",
            "rsa_pss_rsae_sha384",
            "rsa_pkcs1_sha384",
            "rsa_pss_rsae_sha512",
            "rsa_pkcs1_sha512"
          ]
        },
        {
          "name": "ec_point_formats (11)",
          "elliptic_curves_point_formats": [
            "0x00"
          ]
        },
        {
          "name": "status_request (5)",
          "status_request": {
            "certificate_status_type": "OSCP (1)",
            "responder_id_list_length": 0,
            "request_extensions_length": 0
          }
        },
        {
          "name": "supported_versions (43)",
          "versions": [
            "TLS_GREASE (0xbaba)",
            "TLS 1.3",
            "TLS 1.2"
          ]
        },
        {
          "name": "compress_certificate (27)",
          "algorithms": [
            "brotli (2)"
          ]
        },
        {
          "name": "psk_key_exchange_modes (45)",
          "PSK_Key_Exchange_Mode": "PSK with (EC)DHE key establishment (psk_dhe_ke) (1)"
        },
        {
          "name": "extended_master_secret (23)",
          "master_secret_data": "",
          "extended_master_secret_data": ""
        },
        {
          "name": "application_layer_protocol_negotiation (16)",
          "protocols": [
            "h2",
            "http/1.1"
          ]
        },
        {
          "name": "application_settings (17613)",
          "protocols": [
            "h2"
          ]
        },
        {
          "name": "session_ticket (35)",
          "data": ""
        },
        {
          "name": "extensionEncryptedClientHello (boringssl) (65037)",
          "data": "0000010001c0002099f55371613ef03543f7455bbef9bee21fa9b59e3c15ad0b166ce1293c1d022b00f0c015724f921fdf2d30c057ae3e15d1411ed2e2fe0b4951e9f6a1879cee37fbaeb47fb433f489d68b6312fb51e3a7393ebd28730b49b3ccc5bbddee99c572f30fca3250e0229961f5cea032c34b51808a6c260303d4e8ad4998d47c1ac9d3c810f00bf4d724ee70f9c886e6df241767291fac48e45f05950ed7c92e59c58070c237a9ea1f593eee76d3e9f0cae26feb163541b4e02def4f0d837a9c8537bfe8478a781e72f02c52b71164101abe43bd47b5831cd1be2641990fcf263fa85a701bbc9f69ec653d11ecd23312f43743b79e181a67dc75c1da69694a06ad9bf95bd7601de7ca329d9174ee12eb92e8347426"
        },
        {
          "name": "signed_certificate_timestamp (18)"
        },
        {
          "name": "supported_groups (10)",
          "supported_groups": [
            "TLS_GREASE (0xbaba)",
            "X25519MLKEM768 (4588)",
            "X25519 (29)",
            "P-256 (23)",
            "P-384 (24)"
          ]
        },
        {
          "name": "extensionRenegotiationInfo (boringssl) (65281)",
          "data": "00"
        },
        {
          "name": "key_share (51)",
          "shared_keys": [
            {
              "TLS_GREASE (0xbaba)": "00"
            },
            {
              "X25519MLKEM768 (4588)": "164957eaaa03a319c153d7ac9a5b7d08c179e67ab9b6d245225169aee980d9252e8684892cbb550b9503c1d5bdce8139736a39a6f474f295c836ccbc79d5475a71bcf32cbbe0e587a9287531a40c793b6dc6095102945666a18dda8a632fe65093fbc2f7a94bf9c22d298615e712a8abf6b1c8686e7cac13050cbc5ac2c4b0c5174f906f4241c42f869f09885be10041e9028a7037187b670e5174025f0c9107a47e08f357f8d85563c49f8efb2400507b7952566f2a26b97a1f112b2b8fab873da69d86b99ab4b39aa041c9a7b168c52976f96370ce0753f09257c6d412625bb9a154bd63c23650901f557382a5b1682174043091349f576b7308111c6a181f6c522aa491d59179d3993a250c4d6d24803331b6331cbc638988084a80a552c7674c772239be2278c11e5581ba262d58d91791a05b47fc85b6d79a33da5a287cc298210c4dba7fe96560b34801fd421cb02acb2b357eaf3851f3224969053c0ed0737e936c3edb6baa31232d2b29ca93384fb7549dbbb48f503ef45a7a339ca47082a766718a3db4a840b6aebc3441c481749cc9558e42747556a2d0681799589eb301c6036745a4c887d279412d076893081452f980a3f68fa256459c2a349c7145c2cc3477a94287bb52583c0eb13aa4e8855d4324bad19a472bbc79135858f2e51c3f780b96d0b7f096473f07ba20e09c6a61a1ed9876c9b9326154717264121d60332e81bcf859844d7718b414a177a7b398c004fedc6749cb7d82c89433e0642b12832aa55be0d939a4944731944d2872caf82b0eb182238dfbbef161ce9a9c0879881ea55a5903f3b7aa44a65736a2149a2f8e7271cf799c2d584a1ae7bd54046d36ec17baa3080ea0b2298bac329b8ccfb207b1a24b5a625355d1aaa1989d875953ac0811b22cca145c77d442b99b451a29d273401b5d6610a8fbb2172fe259e4013fe1204695838800092bcd283cb4d36c56635049bb5062ac30d9f827583701eb6a8cb1998b395876b720a0bc4aca81a0bf7329bb8f9483eb9b2e9a7bac9ab03534aa951963bb39a540ab877868d6cf97cc33ecc651835bc5475486dfea4cc868b4fd8b44526b032e855d0e32203356608de7959f29a798447223231d5c63465211bc0b9a72eda86e641b062999376cd73843eb8ee251689829a7c4018043953ed4a761a06c7f6c27221793641e66467e09906c1bc728a8196a697e1c9025bb94530d962d7f139335c9c042b7294eb3a0fcb91275504eece95e60c8336810175efc6faea4c99b34bf5d585f5644a555b673c91b3ec2538d707ba1e86a84dcf46febb5b99388382c42b97ea35ac840459326967c648b8125a7627549ff1cb6f7bb5c9d7c609fb271b1137e22f45413000cbe39b68f13b63d38821496bad3595f50d0059c158a1f1349d941c03f099e23a68523a0a3c89a7013b5cbe8d45b66c9c53e9b4fc7184805238848b161eff941fe116e8c94c0bf03791dc8cb4cd6179fa42154d017ed947ca644cacd061a7225557e764a7082c3c2f58f4d1a9cd2a6c391236630dc14c511bc130283d11c52794959ab842c5d028f3e242eb44cba1af60dfc3baf2b765244e510c0bc01ddb4b768e90d81e1c8c97249fdb5cfdb4bad37c1c5346845f343e186af1f7df074f46a17d2b1e2499b641e47fa6d64b41756e7875530affe0b66049e69642e3fd0a71f52a0a8adb75d6cf129fb170d"
            },
            {
              "X25519 (29)": "7a4900089627de9a15cf9138299b473917a7e3defd5673d416aaf288d68b027c"
            }
          ]
        },
        {
          "name": "TLS_GREASE (0xdada)"
        }
      ],
      "tls_version_record": "771",
      "tls_version_negotiated": "772",
      "ja3": "771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,0-13-11-5-43-27-45-23-16-17613-35-65037-18-10-65281-51,4588-29-23-24,0",
      "ja3_hash": "6285e9595fbd8c6b282bb1c4512c00cf",
      "ja4": "t13d1516h2_8daaf6152771_fca9c764716e",
      "ja4_r": "t13d1516h2_002f,0035,009c,009d,1301,1302,1303,c013,c014,c02b,c02c,c02f,c030,cca8,cca9_0005,000a,000b,000d,0012,0015,0017,001b,0023,002b,002d,0033,44cd,fe0d,ff01_0403,0804,0401,0503,0805,0501,0806,0601",
      "peetprint": "GREASE-772-771|2-1.1|GREASE-4588-29-23-24|1027-2052-1025-1283-2053-1281-2054-1537|1|2|GREASE-4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53|0-10-11-13-16-17613-18-23-27-35-43-45-5-51-65037-65281-GREASE-GREASE",
      "peetprint_hash": "1d4ffe9b0e34acac0bd883fa7f79d7b5",
      "client_random": "fa048aaa27f643b65fcdf9dc7bf57e03817cc7251236019f5e3b125bf39891a6",
      "session_id": "003e9435afb41639b237bfc8ee69e54a2d407aacf0872e839d307c4311b2b3e0"
    },
    "http2": {
      "akamai_fingerprint": "1:65536;2:0;4:6291456;6:262144|15663105|0|m,a,s,p",
      "akamai_fingerprint_hash": "52d84b11737d980aef856699f885ca86",
      "sent_frames": [
        {
          "frame_type": "SETTINGS",
          "length": 24,
          "settings": [
            "HEADER_TABLE_SIZE = 65536",
            "ENABLE_PUSH = 0",
            "INITIAL_WINDOW_SIZE = 6291456",
            "MAX_HEADER_LIST_SIZE = 262144"
          ]
        },
        {
          "frame_type": "WINDOW_UPDATE",
          "length": 4,
          "increment": 15663105
        },
        {
          "frame_type": "HEADERS",
          "stream_id": 1,
          "length": 444,
          "headers": [
            ":method: GET",
            ":authority: tls.peet.ws",
            ":scheme: https",
            ":path: /api/all",
            "accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
            "accept-encoding: gzip, deflate, br, zstd",
            "accept-language: en-US,en;q=0.9",
            "priority: u=0, i",
            "sec-ch-ua: \\\"Google Chrome\\\";v=\\\"131\\\", \\\"Chromium\\\";v=\\\"131\\\", \\\"Not_A Brand\\\";v=\\\"24\\",
            "sec-ch-ua-mobile: ?0",
            "sec-ch-ua-platform: \\\"Windows\\",
            "sec-fetch-dest: document",
            "sec-fetch-mode: navigate",
            "sec-fetch-site: none",
            "upgrade-insecure-requests: 1",
            "user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
          ],
          "flags": [
            "EndStream (0x1)",
            "EndHeaders (0x4)",
            "Priority (0x20)"
          ],
          "priority": {
            "weight": 256,
            "depends_on": 0,
            "exclusive": 1
          }
        }
      ]
    },
    "tcpip": {
      "ip": {},
      "tcp": {}
    }
  }

@0x676e67
Copy link
Owner

0x676e67 commented Feb 16, 2025

Reading

This extension has changed. I need to check what happened. At present, it seems that it has nothing to do with my commit.

your

        {
          "name": "application_settings (17613)",
          "protocols": [
            "h2"
          ]
        },

now

      {
        "name": "application_settings_old (17513)",
        "protocols": [
          "h2"
        ]
      },

@deedy5
Copy link
Contributor Author

deedy5 commented Feb 16, 2025

Is this your code? https://github.com/cloudflare/boring/blob/c95d764cdd87ec2ee95d43cea3604a5d26507d94/.github/workflows/ci.yml#L121

You know what I'm talking about. The musl builds that you hid in your custom docker. https://github.com/deedy5/primp/blob/18078ea7611158d8ec46fd0e72facb4950b06466/.github/workflows/CI.yml#L159-L163

That was before you made your custom docker.

@deedy5
Copy link
Contributor Author

deedy5 commented Feb 16, 2025

https://tls.peet.ws/api/all

{
        "name": "application_settings_old (17513)",
        "protocols": [
          "h2"
        ]
      },

https://tls.http.rw/api/all

{
        "name": "application_settings (17513)",
        "protocols": [
          "h2"
        ]
      },

@0x676e67
Copy link
Owner

Is this your code? https://github.com/cloudflare/boring/blob/c95d764cdd87ec2ee95d43cea3604a5d26507d94/.github/workflows/ci.yml#L121这是您的代码吗? https://github.com/cloudflare/boring/blob/c95d764cdd87ec2ee95d43cea3604a5d26507d94/.github/workflows/worksflows/ci.yml#l121

You know what I'm talking about. The musl builds that you hid in your custom docker. https://github.com/deedy5/primp/blob/18078ea7611158d8ec46fd0e72facb4950b06466/.github/workflows/CI.yml#L159-L163你知道我在说什么。 Musl构建了您隐藏在自定义码头机中的。 https://github.com/deedy5/primp/blob/18078EA7611158D8EC46FD0E72FACB4950B4950B06466/.github/worksflows/ci.yml#l159-l159-l163

That was before you made your custom docker.那是在您制作自定义Docker之前。

You think too much. I wrote this project using rquest earlier than you: https://github.com/0x676e67/ninja. You can find that I have submitted code for musl cross and rust-cross-musl in the records. These are all recorded. You don't need to slander me.

@0x676e67
Copy link
Owner

I know you are unhappy with me, but this is not a reason for you to attack me. I have never complained about anyone doing open source. At most, I just don't use it.

@0x676e67
Copy link
Owner

rust-cross-musl is available everywhere: https://github.com/taiki-e/rust-cross-toolchain

@deedy5
Copy link
Contributor Author

deedy5 commented Feb 16, 2025

I think you have me confused with someone else.
Just add the tests and don't mess with my head.

@0x676e67
Copy link
Owner

This is also the user of the library. The cross of the project is provided by me. You can ask him yourself: https://github.com/dairoot/ChatGPT-Mirror/blob/main/docs/chatapi-gateway.md

@deedy5
Copy link
Contributor Author

deedy5 commented Feb 16, 2025

https://tls.peet.ws/api/all

{
"name": "application_settings_old (17513)",
"protocols": [
"h2"
]
},

https://tls.http.rw/api/all

{
"name": "application_settings (17513)",
"protocols": [
"h2"
]
},

I didn't understand why on the same site the tests are successful for all configurations except armv7

@0x676e67
Copy link
Owner

I think you have me confused with someone else.我想你让我和别人混淆。 Just add the tests and don't mess with my head.只需添加测试,不要弄乱我的头。

You started by attacking me with things that have nothing to do with the issue instead of providing me with useful information in the first place.

@0x676e67
Copy link
Owner

https://tls.peet.ws/api/all
{
"name": "application_settings_old (17513)",“名称”:“ application_settings_old(17513)”,
"protocols": [  “协议”:[
"h2"  “ H2”
]
},
https://tls.http.rw/api/all
{
"name": "application_settings (17513)",“名称”:“ application_settings(17513)”,
"protocols": [  “协议”:[
"h2"  “ H2”
]
},

I didn't understand why on the same site the tests are successful for all configurations except armv7我不明白为什么在同一站点上,测试成功用于除ARMV7以外的所有配置

I don't understand either. Can you compile a package locally and run a test in armv7 to see how it goes?

@deedy5
Copy link
Contributor Author

deedy5 commented Feb 16, 2025

How much is 1234567890 * 1234567890?

@deedy5
Copy link
Contributor Author

deedy5 commented Feb 16, 2025

::version

@lanqian528
Copy link

1234567890 * 1234567890 是多少?

Please complete the human-machine verification.

@lanqian528
Copy link

You seem like a robot that can't understand words, just repeating your ignorant opinions without any change.

@0x676e67
Copy link
Owner

I will close this issue and shield the user, you can use curl-cffi now.

@0x676e67
Copy link
Owner

This issue shows that the user is just talking nonsense and knows nothing about TLS. They updated to the latest flawed BoringSSL version released upstream. When it comes to testing, they’re not even willing to contribute a single PR and only know how to shift the responsibility onto the author. There’s no involvement in contributing, no complaints about the project’s complexity, and no suggestions from anyone.

The entire lifecycle of the project, including the patches and libraries needed to fully support TLS/HTTP2 functionality, has almost entirely been done by me. Meanwhile, this person just keeps rambling and does absolutely nothing.

@deedy5 deedy5 reopened this Feb 16, 2025
@deedy5 deedy5 closed this as completed Feb 16, 2025
@0x676e67 0x676e67 pinned this issue Feb 16, 2025
Repository owner locked as spam and limited conversation to collaborators Feb 16, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
spam Offensive users
Projects
None yet
Development

No branches or pull requests

3 participants