https://github.com/landhb/linux-keyutils
Rust interface to the Linux key-management facility. Provides a safe interface around the raw system calls allowing user-space programs to perform key manipulation.
https://github.com/landhb/linux-keyutils
ffi keyring keyutils linux rust-ffi rust-ffi-wrappers
Last synced: about 2 months ago
JSON representation
Rust interface to the Linux key-management facility. Provides a safe interface around the raw system calls allowing user-space programs to perform key manipulation.
- Host: GitHub
- URL: https://github.com/landhb/linux-keyutils
- Owner: landhb
- Created: 2022-09-11T21:43:47.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-03-30T19:33:12.000Z (about 2 months ago)
- Last Synced: 2025-03-30T20:24:09.233Z (about 2 months ago)
- Topics: ffi, keyring, keyutils, linux, rust-ffi, rust-ffi-wrappers
- Language: Rust
- Homepage:
- Size: 66.4 KB
- Stars: 12
- Watchers: 2
- Forks: 6
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# linux-keyutils
[![cargo-badge-lib][]][cargo-lib] [![docs-badge-lib][]][docs-lib] [![license-badge][]][license] [![rust-version-badge][]][rust-version] [![build][]][build-url] [![codecov][]][codecov-url]Rust interface to the Linux key-management facility. Provides a safe interface around the raw system calls allowing user-space programs to perform key manipulation.
There is a good [cloudflare blog](https://blog.cloudflare.com/the-linux-kernel-key-retention-service-and-why-you-should-use-it-in-your-next-application/) discussing why it should be used.
## Basic Usage
To use `linux-keyutils`, first add this to your `Cargo.toml`:
```toml
[dependencies]
linux-keyutils = "0.2"
```For more information please view the full [documentation](https://docs.rs/linux-keyutils). There is also a small example program in the [examples directory](examples/keyctl.rs).
## Features
* `#![no_std]` by default.
* For std programs `KeyError` implements `std::error::Error` when the `std` feature of this crate enabled.
* Small footprint, the library only relies on the `libc` and `bitflags` crates.## License
Licensed under either of the following at your discretion:
* Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)### Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you shall be dual licensed as above, without any
additional terms or conditions.[//]: # (badges)
[license-badge]: https://img.shields.io/badge/license-MIT/Apache--2.0-lightgray.svg?style=flat-square
[license]: #license
[rust-version-badge]: https://img.shields.io/badge/rust-latest%20stable-blue.svg?style=flat-square
[rust-version]: #rust-version-policy
[cargo-badge-lib]: https://img.shields.io/crates/v/linux-keyutils.svg?style=flat-square&label=linux-keyutils
[cargo-lib]: https://crates.io/crates/linux-keyutils
[docs-badge-lib]: https://img.shields.io/docsrs/linux-keyutils/latest?style=flat-square
[docs-lib]: https://docs.rs/linux-keyutils
[codecov]: https://img.shields.io/codecov/c/github/landhb/linux-keyutils?style=flat-square
[codecov-url]: https://codecov.io/gh/landhb/linux-keyutils
[build]: https://img.shields.io/github/actions/workflow/status/landhb/linux-keyutils/checks.yml?branch=main&style=flat-square
[build-url]: https://github.com/landhb/linux-keyutils/actions?query=workflow%3Achecks