w3c / w3c/webcrypto

Please add support for SM series algorithms.

Open
#231 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

needs implementor interest proposal
Dominant language
HTML
Stars
294
Forks
78
PR merge metrics
No merged PRs in 30d

Description

Hi,
The Web Crypto API is an interface allowing a script to use cryptographic primitives in order to build systems using cryptography, it is now supports regular internal algorithms like RSA, SHA, AES, etc. Now the SM series algorithms are accepted by ISO/IEC, we may use those algorithms on the web applications. So, I propose to add SM series algorithms in the Web Crypto API.
[ISO-SM3] International Organization for Standardization, "IT Security techniques -- Hash-functions -- Part 3: Dedicated hash-functions", ISO ISO/IEC 10118-3:2018, October 2018, https://www.iso.org/standard/67116.html
[ISO-SM2/SM9] International Organization for Standardization, "IT Security techniques -- Digital signatures with appendix -- Part 3: Discrete logarithm based mechanisms", ISO ISO/IEC 14888-3:2018, November 2018, https://www.iso.org/standard/76382.html.
The above three algorithms (SM2/3/9) are officially accepted on the ISO/IEC SC27 meeting at Berlin in 2018. Besides them, we also want to openly discuss whether the SM4 algorithm can be added which the status is under review.
[ISO-SM4] International Organization for Standardization, "IT Security techniques -- Encryption algorithms -- Part 3: Block ciphers", ISO ISO/IEC 18038-3:2010, December 2010, https://www.iso.org/standard/54531.html.
Brief introduction about 360 browser : I’m Shane from browser team of 360 (360 Security Technology Inc, SHA: 601360) . 360 browser is the most popular browser in China, According recent 3rd statistics from iresearch, 360 browser DAU (Daily Active User) is 7 million, MAU (Monthly Active User) is 400 million, market penetration is 84%, keep 1st place for years compared with other browser vendors. We have implemented the SM series algorithms in 360 browser since 2017, which is based on boringssl and the latest version is based on Chromium78. Also, we are planning to open source the implementation.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the Web Crypto API algorithms and the cited ISO specifications for SM2, SM3, SM4, and SM9. Clarify the scope, especially whether SM4 is included, then review how the API currently defines supported algorithms; done means an agreed implementation scope for the requested SM-series support.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
api, cryptography, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.