...
Explain the proposal as if it was already included in Ursa and you were teaching it to another Ursa programmer. That generally means:
- Introducing new named concepts. Chinese Will add Chinese GM/T cryptographic standards or GCCS for short.
- Explaining the feature largely in terms of examples. Support SM2(elliptic curve cryptographic), SM3(hash function with 256-bit digest length), SM4, SM9(Signature), ZUCExplaining how Ursa programmers should think about the feature, and how it should impact the way they use Ursa. It should explain the impact as concretely as possible.
- If applicable, provide sample error messages, deprecation warnings, or migration guidance.
- If applicable, describe the differences between teaching this to existing Ursa programmers and new Ursa programmers.
- If applicable, describe any changes that may affect the security of communications or administration.
Reference-level explanation
...
- Its interaction with other features is clear. There is already implementations(wrapper) in difference languages, like golang, java, etc. at https://github.com/guanzhi/GmSSL. Ursa can use the implementation if the current implementation support or re-write in Rust.
- It is reasonably clear how the feature would be implemented. The standards is at http://www.gmbz.org.cn/main/bzlb.html & http://gmssl.org/docs/standards.html, existing implementation is at https://github.com/guanzhi/GmSSL
- Corner cases are dissected by example.
- Any new or altered interfaces should include pseudo-code.
The section should return to the examples given in the previous section, and explain more fully how the detailed proposal makes those examples work.
...