pivy | using PIV tokens ( like Yubikeys
kandi X-RAY | pivy Summary
kandi X-RAY | pivy Summary
pivy is a C library. pivy has no bugs, it has no vulnerabilities and it has low support. You can download it from GitHub.
This is an implementation of a simple PIV client for desktop Linux and OSX with minimal dependencies. It contains a pivy-tool binary which can conduct basic operations using PIV cards, and the pivy-agent, which implements the SSH agent protocol as a drop-in replacement for the OpenSSH ssh-agent command (except that the keys it contains are always on a PIV card). "PIV cards" notably includes Yubico Yubikey devices such as the NEO and Yubikey4, which can store up to 24 keys by using the "retired key" slots (which this agent supports). This project re-uses most of the agent and protocol parsing code from OpenSSH, where it's been pretty thoroughly battle-hardened.
This is an implementation of a simple PIV client for desktop Linux and OSX with minimal dependencies. It contains a pivy-tool binary which can conduct basic operations using PIV cards, and the pivy-agent, which implements the SSH agent protocol as a drop-in replacement for the OpenSSH ssh-agent command (except that the keys it contains are always on a PIV card). "PIV cards" notably includes Yubico Yubikey devices such as the NEO and Yubikey4, which can store up to 24 keys by using the "retired key" slots (which this agent supports). This project re-uses most of the agent and protocol parsing code from OpenSSH, where it's been pretty thoroughly battle-hardened.
Support
Quality
Security
License
Reuse
Support
pivy has a low active ecosystem.
It has 160 star(s) with 21 fork(s). There are 30 watchers for this library.
It had no major release in the last 12 months.
There are 6 open issues and 9 have been closed. On average issues are closed in 142 days. There are 3 open pull requests and 0 closed requests.
It has a neutral sentiment in the developer community.
The latest version of pivy is v0.10.0
Quality
pivy has no bugs reported.
Security
pivy has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
License
pivy does not have a standard license declared.
Check the repository for any license declaration and review the terms closely.
Without a license, all rights are reserved, and you cannot use the library in your applications.
Reuse
pivy releases are available to install and integrate.
Installation instructions are available. Examples and code snippets are not available.
Top functions reviewed by kandi - BETA
kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of pivy
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of pivy
pivy Key Features
No Key Features are available at this moment for pivy.
pivy Examples and Code Snippets
No Code Snippets are available at this moment for pivy.
Community Discussions
No Community Discussions are available at this moment for pivy.Refer to stack overflow page for discussions.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install pivy
I recommend that new users run the pivy-tool setup command -- it will initialise the PIV applet and then generate a standard set of basic keys which will suit most users. The setup command will prompt you to set a PIN and PUK, as well as generating keys. The PIV PIN and PUK are both secret strings of 6-8 ASCII characters which are used to protect access to your device. In the PIV spec, these strings are required to be numeric (consisting only of digits 0 through 9), but many PIV devices such as YubiKeys will allow a much wider variety of characters. The PIN is what you will normally use to authenticate to your device and unlock the use of private keys. By default, 5 invalid attempts to validate the PIN are allowed before it becomes locked. The PUK is intended as a fall-back if the PIN is forgotten, and can be used to reset it when locked. If you supply the PUK incorrectly 3 times (by default), then the card/device becomes locked down and will generally destroy its private keys. It's fine for personal use to set the PIN and PUK to the same value. The PUK is best used in an organisational context where devices are being provisioned for users centrally -- it can be securely stored rather than given to the user and used to help unlock devices when PINs have been forgotten. In a PIV device/card, your keys are stored in a fixed set of "slots", which are known by their numbered slot IDs. The different key "slots" (9a, 9c, 9d and 9e) have different assigned purposes in the PIV spec, but YubiKeys and a lot of compatible devices are not very strict in enforcing these.
9E: Card Authentication Key (often styled as "CAK"). This key is intended to authenticate only the device/card, not the person who owns it. It defaults to not requiring any authentication to use (no PIN, no touch confirmation on YubiKeys). In pivy-agent, for example, this slot is used to check that the device it's talking to is actually the device it's supposed to be (and not an attacker replacement with the same ID) before giving it the user's PIN.
9A: PIV Authentication Key. This is the main key used to authenticate the owner of the card/device. It's protected by the PIN by default. You should use this key as your primary option for signature authentication (e.g. this is the key you should add to .ssh/authorized_keys or GitHub).
9C: Signature Key. This key is intended for use signing documents or certificates. Since this purpose is not as common as authentication amongst users of pivy, it also serves duty as a backup authentication key. If you need to SSH or auth to a system that does not support EC keys, this key is an RSA key so that you can use it as a fallback for the 9A key. It requires a PIN by default, like 9A.
9D: Key Management Key. This key is intended for use only to derive symmetric keys to encrypt/decrypt data. It's a matter of some controversy in the cryptography community whether it's entirely safe to use the same EC key both for signing and key derivation (ECDH), so I would recommend you avoid signing arbitrary data with your 9D key (don't use it for regular authentication). See the next section for more information about using this key to encrypt data at rest. Requires both PIN and touch confirmation (on YubiKeys).
9E: Card Authentication Key (often styled as "CAK"). This key is intended to authenticate only the device/card, not the person who owns it. It defaults to not requiring any authentication to use (no PIN, no touch confirmation on YubiKeys). In pivy-agent, for example, this slot is used to check that the device it's talking to is actually the device it's supposed to be (and not an attacker replacement with the same ID) before giving it the user's PIN.
9A: PIV Authentication Key. This is the main key used to authenticate the owner of the card/device. It's protected by the PIN by default. You should use this key as your primary option for signature authentication (e.g. this is the key you should add to .ssh/authorized_keys or GitHub).
9C: Signature Key. This key is intended for use signing documents or certificates. Since this purpose is not as common as authentication amongst users of pivy, it also serves duty as a backup authentication key. If you need to SSH or auth to a system that does not support EC keys, this key is an RSA key so that you can use it as a fallback for the 9A key. It requires a PIN by default, like 9A.
9D: Key Management Key. This key is intended for use only to derive symmetric keys to encrypt/decrypt data. It's a matter of some controversy in the cryptography community whether it's entirely safe to use the same EC key both for signing and key derivation (ECDH), so I would recommend you avoid signing arbitrary data with your 9D key (don't use it for regular authentication). See the next section for more information about using this key to encrypt data at rest. Requires both PIN and touch confirmation (on YubiKeys).
Support
For any new features, suggestions and bugs create an issue on GitHub.
If you have any questions check and ask questions on community page Stack Overflow .
Find more information at:
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page