-
Notifications
You must be signed in to change notification settings - Fork 17
Part 7: Stream cipher traits, CFB as a stream cipher, and new CFB8 and CTR modes #113
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
base: release/0.1.3alpha
Are you sure you want to change the base?
Changes from 52 commits
31affff
aec1ae4
d604906
a57d508
fa0be5d
34d7953
1140a61
1ad97fd
fe6fd58
58a1fed
aa9454d
f56802e
78a4021
c5f60fb
2c0567e
157b1c8
f6cb787
a1c4e41
9c65521
57dd3d0
97ac6e3
5c73617
e2b534d
f72bfe6
0404ab9
921e2b5
7b4e7fc
c34c2f9
7df74a6
ac896e2
f34858d
46e2e79
607cfa7
4ca1274
a9627f6
f403921
e018929
17372c9
d1bee58
ca53601
891669b
45941d1
74e0100
37d0b3b
c158860
8c7ec71
9c1b9b7
5cec55d
4adbebb
4bac3b3
fc2fcb7
d66cd0b
dc248f9
7539532
b0bd491
097c09b
55f53f7
0156990
213473c
5fc1370
b11f8f6
5825050
0cc2799
b282942
8b48d93
6cc74c2
0558f26
b77f8a4
cb0429c
9c9861c
21b375c
91b3054
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,57 @@ | ||
| --- | ||
| name: commit-range-report | ||
| description: Write a Markdown report summarising a range of commits on the current branch - branch name and commit list, public API changes and new functionality with code examples, then a per-commit summary. Use when asked to report on, summarise or document the commits since a given commit or between two commits. | ||
| --- | ||
|
|
||
| # Commit range report | ||
|
|
||
| Produce a `.md` report for the commits from a start commit to an end commit (default: the branch | ||
| head), in this fixed structure: | ||
|
|
||
| 1. **Title and preamble** — one sentence on what the range delivers as a whole. | ||
| 2. **Branch and commits** — the branch name, then a table of every commit in the range with its | ||
| full SHA and subject, oldest first. Note how they got there (squash merge of PR #N, cherry-pick, | ||
| new work) when the subjects say so. | ||
| 3. **Public API changes and new functionality** — grouped by crate, describing the API *as it is at | ||
| the end of the range*, not each intermediate shape. For every new or changed public trait, type, | ||
| alias or CLI subcommand: a short prose explanation of what it is for and any design rule behind | ||
| it, then a code example. Traits are shown as their signatures (`pub trait ... { fn ...; }`); | ||
| types are shown in use, end to end (construct a key, call the API, assert the result). Include | ||
| the CLI with shell examples when subcommands were added. | ||
| 4. **Summary of each commit** — one paragraph per commit, numbered to match the table: what changed, | ||
| why, how it was verified, and the `files changed, insertions, deletions` line from `git show --stat`. | ||
| 5. **Verification at the head** — formatting, tests, docs, and any vector suites that ran. | ||
|
|
||
| ## Arguments | ||
|
|
||
| `$ARGUMENTS` is `<start-sha> [<end-ref>]`. The start commit is **included** in the range. If the end | ||
| is omitted use `HEAD`. If no argument is given, ask for the start commit. | ||
|
|
||
| ## Procedure | ||
|
|
||
| Gather facts from the tree and git, never from memory of the session: | ||
|
|
||
| ```sh | ||
| git rev-parse --abbrev-ref HEAD | ||
| git log --reverse --format='%H %s' <start>~1..<end> | ||
| for c in $(git log --reverse --format=%h <start>~1..<end>); do echo "$c: $(git show --stat --format= $c | tail -1)"; done | ||
| git diff --stat <start>~1 <end> # the whole range's footprint | ||
| ``` | ||
|
|
||
| For the API section, read the *current* source of every public item the range touched: trait | ||
| definitions (`awk '/^pub trait NAME/{p=1} p{print} p&&/^}/{exit}' file`), `pub use` / `pub struct` / | ||
| `pub type` lines, umbrella re-exports in `src/lib.rs`, and the CLI's `--help` output. Prefer taking | ||
| code examples from the crate's own doctests, since those are known to compile; adapt them minimally. | ||
| Quote spec citations exactly as the code does. Do not describe an API shape that a later commit in | ||
| the range replaced, except in the per-commit summary where it is history. | ||
|
|
||
| For the per-commit summaries, read each commit's message and stat; where a commit was a squash merge | ||
| or a cherry-pick with conflict resolution, say how the conflicts were resolved if the message or the | ||
| diff makes it clear. | ||
|
|
||
| ## Output | ||
|
|
||
| Save the report as `local/<branch-slug>_<topic>_report.md` unless the user names a path (`local/` is | ||
| excluded from git on this checkout via `.git/info/exclude`; create it if absent), and leave it | ||
| uncommitted unless asked to commit it. Tell the user where it is. Keep the prose | ||
| in the house style: short sentences, one idea each, code only in fenced blocks, no em-dashes. | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -9,7 +9,9 @@ version = "0.1.3" | |
|
|
||
| # *** Internal Dependencies *** | ||
| bouncycastle = { path = "./" } | ||
| bouncycastle-aes-lowmemory = { path = "./crypto/aes-lowmemory" } | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Discussion point: weird to have an
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This crate does not exist - see PR #115 - you already asked me to rename it, and I already have. |
||
| bouncycastle-base64 = { path = "./crypto/base64" } | ||
| bouncycastle-modes = { path = "./crypto/modes" } | ||
| bouncycastle-core = { path = "crypto/core" } | ||
| bouncycastle-core-test-framework = { path = "./crypto/core-test-framework" } | ||
| bouncycastle-factory = { path = "./crypto/factory" } | ||
|
|
@@ -20,9 +22,11 @@ bouncycastle-mlkem = { path = "./crypto/mlkem" } | |
| bouncycastle-mlkem-lowmemory = { path = "./crypto/mlkem-lowmemory" } | ||
| bouncycastle-mldsa = { path = "./crypto/mldsa" } | ||
| bouncycastle-mldsa-lowmemory = { path = "./crypto/mldsa-lowmemory" } | ||
| bouncycastle-padding = { path = "./crypto/padding" } | ||
| bouncycastle-rng = { path = "./crypto/rng" } | ||
| bouncycastle-sha2 = { path = "./crypto/sha2" } | ||
| bouncycastle-sha3 = { path = "./crypto/sha3" } | ||
| bouncycastle-sm3 = { path = "./crypto/sm3" } | ||
| bouncycastle-utils = { path = "./crypto/utils" } | ||
|
|
||
|
|
||
|
|
@@ -41,6 +45,7 @@ version.workspace = true | |
| edition.workspace = true | ||
|
|
||
| [dependencies] | ||
| bouncycastle-aes-lowmemory.workspace = true | ||
| bouncycastle-base64.workspace = true | ||
| bouncycastle-core.workspace = true | ||
| bouncycastle-factory.workspace = true | ||
|
|
@@ -51,6 +56,9 @@ bouncycastle-mldsa.workspace = true | |
| bouncycastle-mldsa-lowmemory.workspace = true | ||
| bouncycastle-mlkem.workspace = true | ||
| bouncycastle-mlkem-lowmemory.workspace = true | ||
| bouncycastle-modes.workspace = true | ||
| bouncycastle-padding.workspace = true | ||
| bouncycastle-rng.workspace = true | ||
| bouncycastle-sha2.workspace = true | ||
| bouncycastle-sha3.workspace = true | ||
| bouncycastle-sm3.workspace = true | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am deleting / reverting this change. This seems like your personal workflow more than something that all contributors would want to spend tokens on. Not everyone has the unlimited Fable tokens that you do.
I would suggest that you store your personal SKILLs in a dir outside the git tree.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You'll need to talk to me about this one, I'd also suggest deleting the conversation if possible. This is a very public place to display that much ignorance about what a SKILL is and how they are used and work.