v0.1.0
v0.1.0 Beta
The C SDK is the client implementation of the atProtocol. We have decided to completely rewrite the Dart SDK in C to for purposes like embedded devices. It would be possible for something like an ESP32 to use our library to communicate securely with other atSigns. NoPorts is one scenario where the C SDK proves useful, where devices that have trouble using our Dart binaries can instead utilize binaries using our C SDK.
Beta Features
atclient
Features included:
- SSL Connection
- AtKey & Metadata
- AtKeysFile reading
- Authentication
- MPKAM auth
- CRUD operations
- Get public key
- Get self key
- Get shared key
- Put public key
- Put self key
- Put shared key
- Delete atkey
- Get atkeys
- Events
- Notify an atSign of an event
- Monitor for notifications
Features not yet included in this release:
- Authentication
- CRAM auth
- APKAM auth
atchops
Features included in this release:
- AES-256 CTR encrypt/decrypt and key generation
- RSA-2048 key importing, sign/verify, and encrypt/decrypt
- Base64 encode/decode
- SHA 256 hash
- UUIDv4 generation
Features yet to be included:
- RSA2048 key generation
Changelog
Changelog
- feat: at_chops - base64 and AES 256 CTR by @JeremyTubongbanua in #7
- docs: root README.md update by @JeremyTubongbanua in #13
- docs: requirements for using tool by @JeremyTubongbanua in #17
- feat: atKeys file reader by @natt-n in #16
- feat: add Verbose Logging Utility by @HamdaanAliQuatil in #18
- feat: add OSSF Security Scorecard and badge by @cpswan in #19
- feat: RSA MVP by @JeremyTubongbanua in #9
- feat: sha library & small changes by @JeremyTubongbanua in #22
- feat: socket connections by @JeremyTubongbanua in #24
- chore: Add autobug workflow by @cpswan in #27
- feat: repl by @JeremyTubongbanua in #28
- feat: complete refactor, ci compilation + test, CMake configs by @JeremyTubongbanua in #29
- docs: minor typo by @JeremyTubongbanua in #32
- feat: atchops refactor, ESP-IDF build static libraries, ESP-IDF project examples, repl example, lots of docs by @JeremyTubongbanua in #33
- docs: sample cmake project docs by @JeremyTubongbanua in #35
- ci: test building source and using it by @JeremyTubongbanua in #36
- ci: fix typo by @JeremyTubongbanua in #38
- ci: add workflow_dispatch to actions by @JeremyTubongbanua in #40
- ci: run on ubuntu-latest and macos-latest by @JeremyTubongbanua in #41
- feat: atclient pkam_authenticate by @JeremyTubongbanua in #42
- fix: parse CA certs from headers file by @realvarx in #50
- docs: Add OpenSSF Best Practices badge by @cpswan in #54
- ci: ossf fixes by @cpswan in #51
- docs: Add initial CHANGELOG.md files by @cpswan in #53
- build(deps): bump actions/upload-artifact from 3.1.2 to 3.1.3 by @dependabot in #55
- build(deps): bump actions/checkout from 3.5.0 to 4.1.1 by @dependabot in #56
- build(deps): bump leonsteinhaeuser/project-beta-automations from 2.1.0 to 2.2.1 by @dependabot in #57
- build(deps): bump ossf/scorecard-action from 2.1.3 to 2.3.1 by @dependabot in #58
- fix: replace binary artifacts with placeholder files by @JeremyTubongbanua in #60
- build(deps): bump actions/upload-artifact from 3.1.3 to 4.0.0 by @dependabot in #61
- build(deps): bump github/codeql-action from 2.22.8 to 3.22.11 by @dependabot in #62
- build(deps): bump github/codeql-action from 3.22.11 to 3.22.12 by @dependabot in #63
- build(deps): bump github/codeql-action from 3.22.12 to 3.23.0 by @dependabot in #65
- build(deps): bump actions/upload-artifact from 4.0.0 to 4.1.0 by @dependabot in #66
- docs: iv.h by @JeremyTubongbanua in #67
- fix: set CMP0135 policy to be NEW by @JeremyTubongbanua in #68
- build(deps): bump github/codeql-action from 3.23.0 to 3.23.1 by @dependabot in #71
- build(deps): bump actions/upload-artifact from 4.1.0 to 4.2.0 by @dependabot in #72
- feat: CMake dynamic library fetching + install/clean_install scripts by @JeremyTubongbanua in #70
- feat: uuid library in atchops using uuid4 fork (and new ctest tooling) by @JeremyTubongbanua in #86
- build(deps): bump actions/upload-artifact from 4.2.0 to 4.3.0 by @dependabot in #89
- feat: update mbedtls to v3.5.1 in atchops & atclient by @JeremyTubongbanua in #87
- docs: maintainers by @JeremyTubongbanua in #90
- fix: installs will only happen explicitly now by @JeremyTubongbanua in #88
- feat: cJSON dependency + test by @JeremyTubongbanua in #91
- build(deps): bump github/codeql-action from 3.23.1 to 3.23.2 by @dependabot in #93
- fix: readme link by @XavierChanth in #94
- feat: use cJSON in
atkeysfile.c
and useatstr.h
andatstr.c
by @JeremyTubongbanua in #92 - chore:
examples/
cleanup by @JeremyTubongbanua in #96 - feat: atbytes, atstr improvements, atsign, repl by @JeremyTubongbanua in #95
- fix: free() major bug in
atchops/
andatclient/
by @JeremyTubongbanua in #97 - test: test_aes_generate by @JeremyTubongbanua in #99
- build(deps): bump github/codeql-action from 3.23.2 to 3.24.0 by @dependabot in #100
- build(deps): bump actions/upload-artifact from 4.3.0 to 4.3.1 by @dependabot in #103
- chore: Standalone atlogger by @XavierChanth in #104
- feat: extended atclient unit test timeout, fixed atlogger headers, stringutils + unit tests, atclient_atkey_from_string + unit tests by @JeremyTubongbanua in #101
- build(deps): bump github/codeql-action from 3.24.0 to 3.24.1 by @dependabot in #110
- style: Adopt a clang format config by @XavierChanth in #109
- feat: atkey to string by @JeremyTubongbanua in #106
- build(deps): bump github/codeql-action from 3.24.1 to 3.24.3 by @dependabot in #115
- feat: create_ publickey, sharedkey, selfkey by @JeremyTubongbanua in #113
- chore: cleanup atchops by @XavierChanth in #116
- feat: atclient_atsign & get_enc_shared_keys by @realvarx in #111
- chore: cleanup atclient by @XavierChanth in #120
- ci: Add cppcheck workflow by @cpswan in #121
- fix: various tweaks to previous get_enc_shared_keys PR by @realvarx in #118
- feat: metadata_to_jsonstr/protocolstr and metadata_from_str by @JeremyTubongbanua in #117
- chore: remove externally available atstr functions by @JeremyTubongbanua in #123
- feat: atclient_delete(atkey) by @JeremyTubongbanua in #126
- build(deps): bump github/codeql-action from 3.24.3 to 3.24.5 by @dependabot in #130
- feat: atclient.c/.h get functions boilerplate by @JeremyTubongbanua in #131
- docs: Update README.md logo by @XavierChanth in #138
- docs: Update README.md logo by @XavierChanth in #144
- chore: refine types and memory by @XavierChanth in #146
- build(deps): bump github/codeql-action from 3.24.5 to 3.24.6 by @dependabot in #147
- docs: update documentation and refactor
examples/
by @JeremyTubongbanua in #148 - feat: atclient_get_publickey by @JeremyTubongbanua in #137
- feat: atclient_get_selfkey by @JeremyTubongbanua in #143
- feat: crud examples with manual testing script by @JeremyTubongbanua in #152
- build(deps): bump actions/checkout from 4.1.1 to 4.1.2 by @dependabot in #158
- build(deps): bump github/codeql-action from 3.24.6 to 3.24.7 by @dependabot in #157
- refactor:
unsigned long
->size_t
by @JeremyTubongbanua in #159 - build(deps): bump github/codeql-action from 3.24.7 to 3.24.8 by @dependabot in #164
- chore: use bit shifts in symbolic constants in metadata.h by @JeremyTubongbanua in #163
- feat: atclient_put (public key & self key) & unit tests workflow misc changes by @JeremyTubongbanua in #156
- chore: remove unnecessary error print that wasn't even an error by @JeremyTubongbanua in #166
- chore: update repl to work by @JeremyTubongbanua in #167
- feat: atclient_get_sharedkey by @realvarx in #149
- build(deps): bump github/codeql-action from 3.24.8 to 3.24.9 by @dependabot in #170
- feat: minimum viable notify by @XavierChanth in #173
- chore: rename shared_by_me_with_other and shared_by_other_with_me static functions in atclient.c by @realvarx in #175
- docs: Link scorecard badge to viewer by @cpswan in #178
- build(deps): bump github/codeql-action from 3.24.9 to 3.24.10 by @dependabot in #185
- fix: cjson header issue by @realvarx in #181
- feat: atchops_rsa_verify by @realvarx in #189
- build(deps): bump github/codeql-action from 3.24.10 to 3.25.0 by @dependabot in #191
- chore: make mbedtls only test when atclient does by @XavierChanth in #192
- build(deps): bump github/codeql-action from 3.25.0 to 3.25.1 by @dependabot in #193
- build(deps): bump actions/upload-artifact from 4.3.1 to 4.3.2 by @dependabot in #194
- chore: Update README.md by @XavierChanth in #195
- build(deps): bump actions/checkout from 4.1.2 to 4.1.3 by @dependabot in #197
- build(deps): bump actions/upload-artifact from 4.3.2 to 4.3.3 by @dependabot in #198
- build(deps): bump github/codeql-action from 3.25.1 to 3.25.2 by @dependabot in #199
- chore: single atsdk export with a bunch of targets by @XavierChanth in #196
- chore: script fixing by @JeremyTubongbanua in #200
- feat: atclient_put (sharedkey) by @JeremyTubongbanua in #174
- build(deps): bump actions/checkout from 4.1.3 to 4.1.4 by @dependabot in #205
- refactor: moved atclient crud implementations to individual files by @JeremyTubongbanua in #202
- refactor: make AES CTR encrypt/decrypt functions more atomic by @JeremyTubongbanua in #204
- build(deps): bump github/codeql-action from 3.25.2 to 3.25.3 by @dependabot in #207
- feat: pkam refactor by @realvarx in #186
- refactor: make RSA and SHA functions more atomic by @JeremyTubongbanua in #208
- test: CRUD functional_tests, atchops fixes, & misc changes by @JeremyTubongbanua in #210
- chore: rename len to size and olen to len by @JeremyTubongbanua in #213
- docs: building source docs and misc changes by @JeremyTubongbanua in #219
- chore: remove
test_connection
test by @JeremyTubongbanua in #212 - ci: build core examples in
examples/desktop
by @JeremyTubongbanua in #214 - fix: minor lint errors by @XavierChanth in #221
- chore: repl optimizations by @JeremyTubongbanua in #220
- build(deps): bump actions/checkout from 4.1.4 to 4.1.5 by @dependabot in #229
- chore: ignore compile commands by @XavierChanth in #223
- feat: notify encryption + functional test by @JeremyTubongbanua in #231
- feat: monitor decryption and monitor functional test by @JeremyTubongbanua in #234
- build(deps): bump github/codeql-action from 3.25.3 to 3.25.4 by @dependabot in #239
- build(deps): bump ossf/scorecard-action from 2.3.1 to 2.3.3 by @dependabot in #243
- feat: atclient/version.h by @JeremyTubongbanua in #242
- feat: fixed at_talk by @JeremyTubongbanua in #248
- feat: added async_read bool to atclient by @XavierChanth in #250
- docs: monitor and notify headers and src code by @JeremyTubongbanua in #252
- build(deps): bump github/codeql-action from 3.25.4 to 3.25.5 by @dependabot in #253
- fix: notify commands that are >4096 bytes by @JeremyTubongbanua in #258
- chore: moved fix_stdout_buffer to atlogger by @JeremyTubongbanua in #260
- chore: base64 minimum 16 byte buffer, remove connection_send stdoutbuffer by @JeremyTubongbanua in #261
- build(deps): bump actions/checkout from 4.1.5 to 4.1.6 by @dependabot in #268
- build(deps): bump github/codeql-action from 3.25.5 to 3.25.6 by @dependabot in #269
- fix: monitor start failure by @XavierChanth in #270
- feat: connection resilience by @JeremyTubongbanua in #272
- chore: DEBG instead of INFO for SENT and RECV logs by @JeremyTubongbanua in #279
- chore: atchops maintenance by @XavierChanth in #273
- chore(deps): bump github/codeql-action from 3.25.6 to 3.25.7 by @dependabot in #286
- feat: atlogger timestamps by @XavierChanth in #289
- chore(deps): bump github/codeql-action from 3.25.7 to 3.25.8 by @dependabot in #290
- fix: update at_talk by @Xlin123 in #292
- feat: pkam refactor and reconnection examples by @JeremyTubongbanua in #281
- feat: check for ret <= 0 in atclient_monitor_read by @JeremyTubongbanua in #295
- feat: monitor hooks, connection send hooks by @XavierChanth in #297
- fix: larger sharedenckeybase64size and null terminate atclient_stringutils_atsign_with_at_symbol by @JeremyTubongbanua in #301
- chore: remove atbytes from atclient_publickey and make recvsize relative to valuesize input by @JeremyTubongbanua in #303
- test: 3 more monitor functional tests after reconnection & fix flaking publickey test by @JeremyTubongbanua in #296
- chore: base64 optimization in atclient_get_selfkey by @JeremyTubongbanua in #304
- fix: network related hooks fixes by @XavierChanth in #300
- refactor: monitor (BREAKING CHANGES) by @JeremyTubongbanua in #306
- fix: start buffer index from correct position by @XavierChanth in #310
- chore: remove atclient_atkeys_free from atclient_free function by @JeremyTubongbanua in #311
- chore(deps): bump actions/checkout from 4.1.6 to 4.1.7 by @dependabot in #313
- fix: atchops_rsakey_populate_publickey/privatekey memory leaks by @JeremyTubongbanua in #316
- chore(deps): bump github/codeql-action from 3.25.8 to 3.25.10 by @dependabot in #320
- build(deps): Group Dependabot PRs by @cpswan in #319
- feat: rsakey deep clone by @XavierChanth in #321
- fix: atclient_notify memory leaks by @JeremyTubongbanua in #318
- ci: use cmake commands instead of shells cripts by @JeremyTubongbanua in #323
- chore: use static memory for at_logger by @XavierChanth in #324
- fix: memory leaks with atclient_put and atclient_free not freeing connection hooks properly by @JeremyTubongbanua in #325
- fix: atclient_get_publickey mem leak by @JeremyTubongbanua in #326
- chore(deps): bump github/codeql-action from 3.25.10 to 3.25.11 in the github-actions group by @dependabot in #329
- fix: atclient_create_shared_encryption_key_pair_for_me_and_other memory leaks by @JeremyTubongbanua in #328
- chore(deps): bump actions/upload-artifact from 4.3.3 to 4.3.4 in the github-actions group by @dependabot in #333
- feat: atclient_get_atkeys by @JeremyTubongbanua in #330
- fix: atclient_atkey_from_string by @JeremyTubongbanua in #334
- chore(deps): bump github/codeql-action from 3.25.11 to 3.25.12 in the github-actions group by @dependabot in #340
- chore(deps): bump github/codeql-action from 3.25.12 to 3.25.13 in the github-actions group by @dependabot in #348
- fix: skip logging prefix if tag is null by @srieteja in #343
- chore(deps): bump github/codeql-action from 3.25.13 to 3.25.14 in the github-actions group by @dependabot in #351
- chore(deps): bump the github-actions group with 2 updates by @dependabot in #352
- refactor: remove
atclient_atsign
,atclient_atstr
, refactor a bunch of function signatures by @JeremyTubongbanua in #337 - chore: 3.24 minimum cmake version by @JeremyTubongbanua in #355
- feat: allow ciphertext_len to be NULL by @JeremyTubongbanua in #357
- refactor: move default values for atclient_notify_params to notify_params.h as symbolic consts by @srieteja in #359
- chore(deps): bump actions/upload-artifact from 4.3.4 to 4.3.5 in the github-actions group by @dependabot in #361
- fix: null terminate decrypted value by @JeremyTubongbanua in #362
- chore(deps): bump the github-actions group with 2 updates by @dependabot in #364
- build: Release workflow for C SDK tarball by @cpswan in #363
- feat: fix warnings, repl features, request_options fixes, and atnotification refactor by @JeremyTubongbanua in #358
- fix: c_release.yml missing
}
by @JeremyTubongbanua in #366
Full Changelog: https://github.com/atsign-foundation/at_c/commits/v0.1.0
New Contributors
- @natt-n made their first contribution in #16
- @HamdaanAliQuatil made their first contribution in #18
- @cpswan made their first contribution in #19
- @realvarx made their first contribution in #50
- @dependabot made their first contribution in #55
- @Xlin123 made their first contribution in #292
- @srieteja made their first contribution in #343
Checksums
SHA 256 hashes for v0.1.0:
494a4960dedc45484a0078db4c388cd592efdebde45e40bdded5c2b9c587b146 at_c-v0.1.0.tar.gz
7ca4215a473037ca07bef362b852291b0a1cf4e975d24d373d58ae9c1df832bc v0.1.0.tar.gz