{"id":46353198,"url":"https://github.com/princeb612/hotplace","last_synced_at":"2026-04-15T01:02:22.046Z","repository":{"id":189156388,"uuid":"672492895","full_name":"princeb612/hotplace","owner":"princeb612","description":"study RFCs (TLS, DTLS, HTTP, CBOR, COSE, JOSE and etc)","archived":false,"fork":false,"pushed_at":"2026-04-07T09:56:41.000Z","size":10084,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-04-07T11:32:19.830Z","etag":null,"topics":["cose","dtls","http2","http3","jose","quic","tls"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/princeb612.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-07-30T09:18:11.000Z","updated_at":"2026-04-07T09:55:10.000Z","dependencies_parsed_at":"2023-10-13T22:26:03.004Z","dependency_job_id":"e074e69b-09e6-49cd-9381-46c0a7655d28","html_url":"https://github.com/princeb612/hotplace","commit_stats":null,"previous_names":["princeb612/hotplace"],"tags_count":120,"template":false,"template_full_name":null,"purl":"pkg:github/princeb612/hotplace","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/princeb612%2Fhotplace","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/princeb612%2Fhotplace/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/princeb612%2Fhotplace/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/princeb612%2Fhotplace/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/princeb612","download_url":"https://codeload.github.com/princeb612/hotplace/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/princeb612%2Fhotplace/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31821685,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T18:05:02.291Z","status":"ssl_error","status_checked_at":"2026-04-14T18:05:01.765Z","response_time":153,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cose","dtls","http2","http3","jose","quic","tls"],"created_at":"2026-03-04T23:31:23.026Z","updated_at":"2026-04-15T01:02:22.028Z","avatar_url":"https://github.com/princeb612.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# hotplace\n\n* Research on personal interests\n* ![cmake workflow](https://github.com/princeb612/hotplace/actions/workflows/build.yml/badge.svg)\n* ![codeql workflow](https://github.com/princeb612/hotplace/actions/workflows/codeql.yml/badge.svg)\n* powered by\n  * ![openssl](https://img.shields.io/badge/openssl-1.1.1/3.0/3.2/3.3/3.4/3.5-green)\n  * ![jansson](https://img.shields.io/badge/jansson-2.15-green)\n  * ![zlib](https://img.shields.io/badge/zlb-1.3.2-green)\n* language\n  * ![c++](https://img.shields.io/badge/c++-c++11-green)\n  * ![gcc](https://img.shields.io/badge/gcc-\u003e=4.7-green)\n  * ![cmake](https://img.shields.io/badge/cmake-\u003e=2.6-green)\n  * ![MSVC](https://img.shields.io/badge/MSVC-Community-green)\n* platform\n  * ![MSYS2](https://img.shields.io/badge/MSYS2-MINGW64-green)\n  * ![UBUNTU](https://img.shields.io/badge/UBUNTU-\u003e=20-green)\n  * ![RHEL](https://img.shields.io/badge/RHEL-\u003e=7-green)\n  * ![Windows](https://img.shields.io/badge/Windows-10-green)\n* status\n  * JOSE ![implemented](https://img.shields.io/badge/implemented+SDK-green)\n  * CBOR,COSE ![implemented](https://img.shields.io/badge/implemented+SDK-green)\n  * HTTP/1.1 ![implemented](https://img.shields.io/badge/implemented+SDK-green)\n  * HTTP/2 ![implemented](https://img.shields.io/badge/implemented+SDK-green)\n  * TLS over TCP ![implemented](https://img.shields.io/badge/implemented+SDK-green)\n  * DTLS over UDP ![implemented](https://img.shields.io/badge/implemented+SDK-green)\n  * QUIC ![studying](https://img.shields.io/badge/studying-magenta)\n  * HTTP/3 ![studying](https://img.shields.io/badge/studying-magenta)\n  * ASN.1 ![studying](https://img.shields.io/badge/studying-magenta)\n* link\n  * [changelog](CHANGELOG.md)\n  * [devnotes](DEVNOTES.md)\n  * [implemented](#implemented)\n  * [applied](#applied)\n  * [not applied](#not-applied)\n  * [studying](#studying)\n  * [next time](#next-time)\n  * [build](#build)\n  * [custom toolchain](#custom-toolchain)\n  * [link](#link)\n\n## implemented\n\n* TLS,DTLS,QUIC\n  * RFC 2246 The TLS Protocol Version 1.0\n  * RFC 4346 The Transport Layer Security (TLS) Protocol Version 1.1\n    * deprecated\n  * RFC 5246 The Transport Layer Security (TLS) Protocol Version 1.2\n  * RFC 6347 Datagram Transport Layer Security Version 1.2\n  * RFC 7627 Transport Layer Security (TLS) Session Hash and Extended Master Secret Extension\n  * RFC 7905 ChaCha20-Poly1305 Cipher Suites for Transport Layer Security (TLS)\n  * RFC 8446 The Transport Layer Security (TLS) Protocol Version 1.3\n  * RFC 8448 Example Handshake Traces for TLS 1.3\n  * RFC 9147 The Datagram Transport Layer Security (DTLS) Protocol Version 1.3\n    * sdk/net/tls/tls/\n    * test/tls/\n  * RFC 9000 QUIC: A UDP-Based Multiplexed and Secure Transport\n  * RFC 9001 Using TLS to Secure QUIC\n  * RFC 9369 QUIC Version 2\n    * sdk/net/tls/quic/\n    * test/quic/\n  * ML-KEM Post-Quantum Key Agreement for TLS 1.3\n    * [draft-ietf-tls-mlkem-05](https://datatracker.ietf.org/doc/draft-ietf-tls-mlkem/)\n    * [draft-ietf-tls-ecdhe-mlkem-03](https://datatracker.ietf.org/doc/draft-ietf-tls-ecdhe-mlkem/)\n    * test/tls/\n* CBOR\n  * RFC 7049 Concise Binary Object Representation (CBOR)\n  * RFC 8949 Concise Binary Object Representation (CBOR)\n    * sdk/io/cbor/\n    * test/cbor/\n* COSE\n  * RFC 8152 CBOR Object Signing and Encryption (COSE)\n  * RFC 8230 Using RSA Algorithms with CBOR Object Signing and Encryption (COSE) Messages\n  * RFC 8392 CBOR Web Token (CWT)\n  * RFC 8812 CBOR Object Signing and Encryption (COSE) and JSON Object Signing and Encryption (JOSE) Registrations for Web Authentication (WebAuthn) Algorithms\n  * RFC 9052 CBOR Object Signing and Encryption (COSE): Structures and Process\n  * RFC 9053 CBOR Object Signing and Encryption (COSE): Initial Algorithms\n  * RFC 9338 CBOR Object Signing and Encryption (COSE): Countersignatures\n    * sdk/crypto/cose/\n    * test/cose/\n* JOSE\n  * RFC 7515 JSON Web Signature (JWS)\n  * RFC 7516 JSON Web Encryption (JWE)\n  * RFC 7517 JSON Web Key (JWK)\n  * RFC 7518 JSON Web Algorithms (JWA)\n  * RFC 7520 Examples of Protecting Content Using JSON Object Signing and Encryption (JOSE)\n  * RFC 8037 CFRG Elliptic Curve Diffie-Hellman (ECDH) and Signatures in JSON Object Signing and Encryption (JOSE)\n    * sdk/crypto/jose/\n    * test/jose/\n* HTTP/1.1\n  * RFC 1945 Hypertext Transfer Protocol -- HTTP/1.0\n  * RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1\n  * RFC 2069 An Extension to HTTP : Digest Access Authentication\n  * RFC 2396 Uniform Resource Identifiers (URI): Generic Syntax\n  * RFC 2616 Hypertext Transfer Protocol -- HTTP/1.1\n  * RFC 2617 HTTP Authentication: Basic and Digest Access Authentication\n  * RFC 6749 OAuth 2.0\n  * RFC 6750 The OAuth 2.0 Authorization Framework: Bearer Token Usage\n  * RFC 7616 HTTP Digest Access Authentication\n    * sdk/net/http/\n    * test/httpserver1/\n    * test/httpauth/\n    * test/httptest/\n* HTTP/2\n  * RFC 7541 HPACK: Header Compression for HTTP/2\n    * sdk/net/http/http2/\n    * test/hpack/\n    * test/httpserver2/\n  * RFC 7540 Hypertext Transfer Protocol Version 2 (HTTP/2)\n  * RFC 7838 HTTP Alternative Services\n  * RFC 9113 HTTP/2\n    * sdk/net/http/http2/\n    * sdk/net/basic/tls/\n    * test/payload/\n    * test/hpack/\n    * test/httpaltsvc/\n    * test/httpserver2/\n* HTTP/3\n  * RFC 9204 QPACK: Field Compression for HTTP/3\n    * test/qpack/\n* BASE16, BASE64, BASE64URL\n  * RFC 4648 The Base16, Base32, and Base64 Data Encodings\n    * sdk/base/basic/\n    * test/encode/\n* HOTP, TOTP\n  * RFC 4226 HOTP: An HMAC-Based One-Time Password Algorithm\n  * RFC 6238 TOTP: Time-Based One-Time Password Algorithm\n    * sdk/crypto/basic/\n    * test/hash/\n* Pattern Search\n  * KMP algorithm\n  * Trie\n  * Suffix Tree\n  * Ukkonen algorithm\n  * Aho-Corasick algorithm (wildcard)\n    * sdk/base/pattern/\n    * test/pattern/\n    * test/parser/\n* Graph\n  * BFS, DFS, Djkstra\n    * sdk/base/graph/\n    * test/graph/\n* Authenticode\n  * Digital Certificate verification (plugin_msi, plugin_cabinet excluded)\n    * sdk/crypto/authenticode/\n    * test/authenticode/\n\n## applied\n\n* OpenSSL\n  * RFC 2144 The CAST-128 Encryption Algorithm (May 1997)\n  * RFC 2612 The CAST-256 Encryption Algorithm (June 1999)\n  * RFC 3217 Triple-DES and RC2 Key Wrapping (December 2001)\n  * RFC 3394 Advanced Encryption Standard (AES) Key Wrap Algorithm (September 2002)\n  * RFC 3610 Counter with CBC-MAC (CCM)\n  * RFC 4615 The Advanced Encryption Standard-Cipher-based Message Authentication Code-Pseudo-Random Function-128 (AES-CMAC-PRF-128) Algorithm for the Internet Key Exchange Protocol (IKE)\n  * RFC 4772 Security Implications of Using the Data Encryption Standard (DES) (December 2006)\n  * RFC 5649 Advanced Encryption Starndard (AES) Key Wrap with Padding Algorithm (September 2009)\n  * RFC 5794 A Description of the ARIA Encryption Algorithm (March 2010)\n  * RFC 5869 HMAC-based Extract-and-Expand Key Derivation Function (HKDF)\n  * RFC 6070 PKCS #5: Password-Based Key Derivation Function 2 (PBKDF2) Test Vectors\n  * RFC 7539 ChaCha20 and Poly1305 for IETF Protocols\n  * RFC 7914 The scrypt Password-Based Key Derivation Function\n  * RFC 8017 PKCS #1: RSA Cryptography Specifications Version 2.2\n  * RFC 8439 ChaCha20 and Poly1305 for IETF Protocols\n  * RFC 9106 Argon2 Memory-Hard Function for Password Hashing and Proof-of-Work Applications\n  * [Authenticated Encryption with AES-CBC and HMAC-SHA](https://www.ietf.org/archive/id/draft-mcgrew-aead-aes-cbc-hmac-sha2-05.txt)\n    * sdk/crypto/basic/\n    * sdk/crypto/crypto/\n    * test/crypto/\n    * test/kdf/\n\n  * RFC 2104 HMAC: Keyed-Hashing for Message Authentication\n  * RFC 4231 HMAC-SHA Identifiers and Test Vectors December 2005\n  * RFC 4493 The AES-CMAC Algorithm\n  * RFC 6979 Deterministic Usage of the Digital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA)\n  * [NIST CAVP (Cryptographic Algorithm Validation Program) ECDSA](https://csrc.nist.gov/Projects/cryptographic-algorithm-validation-program/digital-signatures)\n    * sdk/crypto/basic/\n    * sdk/crypto/crypto/\n    * test/hash/\n    * test/sign/\n\n  * RFC 4347 Datagram Transport Layer Security\n  * RFC 5246 The Transport Layer Security (TLS) Protocol Version 1.2\n  * RFC 6347 Datagram Transport Layer Security Version 1.2\n  * RFC 8446 The Transport Layer Security (TLS) Protocol Version 1.3\n  * RFC 8996 Deprecating TLS 1.0 and TLS 1.1\n  * RFC 9147 The Datagram Transport Layer Security (DTLS) Protocol Version 1.3\n    * sdk/net/basic/tls/\n    * test/tlsserver/\n    * test/dtlsserver/\n\n* Compression\n  * RFC 1951 DEFLATE Compressed Data Format Specification version 1.3\n  * RFC 1952 GZIP file format specification version 4.3\n    * Accept-Encoding, Content-Encoding\n    * test/httpserver1/\n    * test/httpserver2/\n\n* JOSE\n  * RFC 7638 3.1.  Example JWK Thumbprint Computation\n    * test/jose/\n\n* IEEE 754\n  * half/single/double precision floating point\n    * test/ieee754/\n\n## not applied\n\n\n## studying\n\n* HTTP/1.1\n  * RFC 2817 Upgrading to TLS Within HTTP/1.1\n* HTTP/3\n  * RFC 9000 QUIC: A UDP-Based Multiplexed and Secure Transport\n  * RFC 9001 Using TLS to Secure QUIC\n  * RFC 9002 QUIC Loss Detection and Congestion Control\n  * RFC 9114 HTTP/3\n  * RFC 9368 Compatible Version Negotiation for QUIC\n* TLS,DTLS\n  * RFC 5746 Transport Layer Security (TLS) Renegotiation Indication Extension\n  * RFC 6066 Transport Layer Security (TLS) Extensions: Extension Definitions\n  * RFC 6347 Datagram Transport Layer Security Version 1.2\n  * RFC 6797 HTTP Strict Transport Security (HSTS)\n  * RFC 7301 Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension\n  * RFC 7520 Using Raw Public Keys in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)\n  * RFC 7685 A Transport Layer Security (TLS) ClientHello Padding Extension\n  * RFC 7919 Negotiated Finite Field Diffie-Hellman Ephemeral Parameters for Transport Layer Security (TLS)\n  * RFC 8422 Elliptic Curve Cryptography (ECC) Cipher Suites for Transport Layer Security (TLS) Versions 1.2 and Earlier\n  * RFC 9325 Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)\n\n* ASN.1\n  * ITU-T X.680-X.699\n    * [X.680-X.693 : Information Technology - Abstract Syntax Notation One (ASN.1) \u0026 ASN.1 encoding rules](https://www.itu.int/rec/T-REC-X.680-X.693-202102-I/en)\n      * Recommendation X.680-X.693 (02/21)\n    * [ASN.1 (Abstract Syntax Notation One) is the international standard for representing data types and structures.](https://obj-sys.com/asn1tutorial/asn1only.html)\n      * ITU-T X.680 ISO/IEC 8824-1 Abstract Syntax Notation One (ASN.1): Specification of basic notation\n      * ITU-T X.681 ISO/IEC 8824-2 Abstract Syntax Notation One (ASN.1): Information object specification\n      * ITU-T X.682 ISO/IEC 8824-3 Abstract Syntax Notation One (ASN.1): Constraint specification\n      * ITU-T X.683 ISO/IEC 8824-4 Abstract Syntax Notation One (ASN.1): Parameterization of ASN.1 specifications\n      * ITU-T X.690 ISO/IEC 8825-1 ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)\n      * ITU-T X.691 ISO/IEC 8825-2 ASN.1 encoding rules: Specification of Packed Encoding Rules (PER)\n      * ITU-T X.692 ISO/IEC 8825-3 ASN.1 encoding rules: Specification of Encoding Control Notation (ECN)\n      * ITU-T X.693 ISO/IEC 8825-4 ASN.1 encoding rules: XML Encoding Rules (XER)\n* Neural Networks / Machine Learning\n  * sketch repository (private, spin off, in progress)\n\n## next time\n\n* Compression\n  * RFC 7932 Brotli Compressed Data Format\n  * RFC 8478 Zstandard Compression and the application/zstd Media Type\n  * RFC 8878 Zstandard Compression and the 'application/zstd' Media Type\n* COSE\n  * RFC 8778 Use of the HSS/LMS Hash-Based Signature Algorithm with CBOR Object Signing and Encryption (COSE)\n  * RFC 9021 Use of the Walnut Digital Signature Algorithm with CBOR Object Signing and Encryption (COSE)\n  * RFC 9054 CBOR Object Signing and Encryption (COSE): Hash Algorithms\n  * RFC 9360 CBOR Object Signing and Encryption (COSE): Header Parameters for Carrying and Referencing X.509 Certificates\n\n## build\n\n* platform support - mingw, linux\n  * ubuntu\n    * source env.ubuntu \u0026\u0026 install_packages\n  * MINGW64\n    * source env.mingw64 \u0026\u0026 install_packages\n  * packages to install\n    * gcc, g++, binutils, cmake, gdb\n    * openssl-devel jansson-devel zlib-devel unixodbc (MINGW)\n    * openssl-devel jansson zlib-devel unixodbc-devel (Rocky/CentOS/RHEL)\n    * libssl-dev libjansson-dev zlib1g-dev unixodbc-dev (ubuntu)\n    * valgrind (linux)\n    * clang-tools-extra\n* build script\n  * cd hotplace\n  * ./make.sh debug pch\n* os support (x64)\n  * tested\n    * RHEL 7 and newer, (including CentOS, Rocky Linux)\n    * ubuntu 20.04 and newer\n    * mingw x64\n    * Fedora Core release 4 (Stentz) w/ custom toolchain (GCC 4.8)\n\n## custom toolchain\n\n### openssl\n\n* important\n  * openssl 1.1.1 or newer\n    * RSA-OAEP-256\n    * Ed25519 Ed448 X25519 X448\n    * sha3\n  * openssl 3.0, 3.1\n    * EVP_CIPHER_fetch/EVP_CIPHER_free, EVP_MD_fetch/EVP_MD_free\n    * truncated sha (\"sha2-512/224\", \"sha2-512/256\")\n    * failed to load PEM file containing HMAC private key\n  * openssl 3.2\n    * argon2d, argon2i, argon2id\n  * custom build required in RHEL (RHEL, centos, rocky) and older version\n    * -fPIC required\n    * algoritm test, random SEGV, ctr_update SEGV (older linux), ...\n\n* how to custom build\n  * build custom openssl (example)\n    * install perl\n      * $ sudo yum install perl\n  * cd thirdparty ; ./make.sh\n\n### jansson\n\n* build custom jansson (example)\n  * see https://github.com/akheron/jansson\n  * cd thirdparty ; ./make.sh\n\n### FC4 custom toolchain\n\n* toolchain dependencies\n  * cmake (2.8.10.2)\n  * perl (5.10.0)\n  * m4 (1.4.13)\n  * autoconf (2.65)\n  * automake (1.16.4)\n  * libtool (1.5.2)\n  * make (3.80)\n  * gmp (4.3.2)\n  * mpfr (2.4.2)\n  * mpc (1.0.3)\n  * isl (0.10)\n  * binutils (2.18)\n  * gcc (4.8.5)\n\n# link\n\n * https://github.com/princeb612/hotplace\n * https://www.facebook.com/princeb612\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprinceb612%2Fhotplace","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprinceb612%2Fhotplace","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprinceb612%2Fhotplace/lists"}