# `u2`: a Rust Authentication Library for U2F and FIDO2 on the web  
[![MIT licensed]][MIT] [![Apache-2.0 licensed]][APACHE]

⚠️ **CODE BARELY COMPILES**
⚠️ **CODE IS NOT TESTED**
⚠️ **DO NOT USE (YET)**
⚠️ **CURRENTLY UNLIKELY TO WITHSTAND Y2Q**
Forked from the [`u2f`](https://crates.io/crates/u2f) crate, which (as of this writing) has not been updated in years.
This is still a work in progress as I journey through the existing code and adapt it to use up-to-date dependencies, compile, test, and fit my style. I also have the ambition to not just cover U2F, but also the FIDO2 spec, but we'll see how that goes. ;)
[MIT licensed]: https://img.shields.io/badge/License-MIT-blue.svg
[MIT]: ./LICENSE-MIT
[Apache-2.0 licensed]: https://img.shields.io/badge/License-Apache%202.0-blue.svg
[APACHE]: ./LICENSE-APACHE
## Usage
[DO NOT USE...yet]
## Contributing
All constructive contributions are welcome!! Please raise an issue or make a pull request on GitHub.
Please note that by contributing, you agree that your contribution(s) may be integrated into this project and dual-licensed in the same way which the overall project is. See [LICENSE](./LICENSE) for more information.
### Goals
Here are some of the biggest challenges:
[ ] Audit the `u2::util::asn_length()` function, as it may or may not be doing its job correctly.
[ ] Get this crate aligned with the U2F and FIDO2 standards such that a web dev could use this crate and accept both U2F- and FIDO2-compatible authentication from users (https://www.w3.org/TR/webauthn/).