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

Improve Terminology and Syntax Consistency #114

Closed
tplooker opened this issue May 2, 2022 · 7 comments
Closed

Improve Terminology and Syntax Consistency #114

tplooker opened this issue May 2, 2022 · 7 comments
Labels
core Associated to the core spec pending-close

Comments

@tplooker
Copy link
Member

tplooker commented May 2, 2022

Related to #25 currently the spec has a mix of casing for operation names, inputs, parameters and outputs this should be made consistent including whether short or more descriptive names are used.

Suggested rules for inputs outputs and parameters

  • use snake case
  • use fully qualified names e.g msg -> message PK -> public_key

Suggested rules for function naming

  • use snake case e.g SpkGen => spk_gen
@tplooker tplooker added the core Associated to the core spec label May 2, 2022
@tplooker
Copy link
Member Author

tplooker commented May 2, 2022

I'd also like to clarify that I think the section names should shift to using fully qualified names e.g KeyGen -> Key Generation where the actual function name would be key_gen

@tplooker
Copy link
Member Author

tplooker commented May 2, 2022

alternatively if we think names will become to large even with just applying the rule to inputs outputs and parameters, then I'm happy to stick with brief names e.g msg

@tplooker
Copy link
Member Author

tplooker commented May 2, 2022

Raised by @BasileiosKal on the call the proposal to rename SpkGen to ProofGen or something similar because the proof is not just a signature proof of knowledge.

@BasileiosKal
Copy link
Contributor

My proposal for a terminology convention is:

  1. All EC points to be capital even in their octets representation (i.e., pub_key -> PK)
  2. All special points in G1 will be Pi, i = 1, 2, etc. For example, P1 will be the base point of G1, P2 will be the generator for the blind value (H_s in Add signature dst #95) and P3 the generator for the signature domain (H_d in Add signature dst #95). So B will be
B = P1 + P2 * s + P3 * domain + H_1 * msg_1 + .... + H_L * msg_L
  1. All special points in G2 will be Qi, i = 1, 2, ..etc. This means that the base point in G2 will be Q1 and the pub key will be PK = Q1 * SK.
  2. All scalars will be lower case (i.e., SK -> sk)
  3. Core functions will be pascal case (i.e., proofVerify -> ProofVerify)
  4. Helper functions will be snake case. I'm going back and forward on this one since it will give us consistency with many functions we use from the h2c spec, however as @andrewwhitehead pointed it may be better to be internally consistent. So im also fine with making every function pascal case.

@tplooker
Copy link
Member Author

tplooker commented Jul 4, 2022

Labeling as pending close ahead of WG call on the 4th of july

@BasileiosKal
Copy link
Contributor

Updates discussed to WG call:
Ciphersuite_ID -> ciphersuite_id
H_s, H_d -> Q_1, Q_2
MsgGenerators -> msgGenerators

@tplooker
Copy link
Member Author

tplooker commented Aug 8, 2022

Discussed on 8th august WG call, closing

@tplooker tplooker closed this as completed Aug 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core Associated to the core spec pending-close
Projects
None yet
Development

No branches or pull requests

2 participants