
Research
NPM targeted by malware campaign mimicking familiar library names
Socket uncovered npm malware campaign mimicking popular Node.js libraries and packages from other ecosystems; packages steal data and execute remote code.
|Circle CI| |Codecov|
Utility for keeping your secrets encrypted. Also has a Go version <https://github.com/Zemanta/go-secretcrypt>
__.
For example, you have the following configuration file
::
MY_SECRET=VerySecretValue!
but you can't include that file in VCS because then your secret value would be exposed.
With secretcrypt, you can encrypt your secret using your AWS KMS master key aliased MyKey:
.. code:: bash
$ encrypt-secret kms alias/MyKey
Enter plaintext: VerySecretValue! # enter
kms:region=us-east-1:CiC/SXeuXDGRADRIjc0qcE... # shortened for brevity
# --- or --
$ echo "VerySecretValue!" | encrypt-secret kms alias/MyKey
kms:region=us-east-1:CiC/SXeuXDGRADRIjc0qcE... # shortened for brevity
# only use piping when scripting, otherwise your secrets will be stored
# in your shell's history!
use that secret in my config file
.. code:: python
from secretcrypt import Secret
MY_SECRET=Secret('kms:region=us-east-1:CiC/SXeuXDGRADRIjc0qcE...') # shortened for brevity
and get the plaintext like
.. code:: python
print MY_SECRET.get()
# VerySecretValue!
If you are using very sensitive secrets, you can ensure the plaintext is not kept in memory and is only encrypted on demand by using a stricter version:
.. code:: python
from secretcrypt import StrictSecret
MY_SECRET=StrictSecret('kms:region=us-east-1:CiC/SXeuXDGRADRIjc0qcE...') # shortened for brevity
and get the plaintext like
.. code:: python
print MY_SECRET.decrypt()
# VerySecretValue!
The KMS option uses AWS Key Management Service. When encrypting and
decrypting KMS secrets, you need to provide which AWS region the is to
be or was encrypted on, but it defaults to us-east-1
.
So if you use a custom region, you must provide it to secretcrypt:
.. code:: bash
encrypt-secret kms --region us-west-1 alias/MyKey
This mode is meant for local and/or offline development usage. It
generates a local key in your %USER_DATA_DIR% (see
appdirs <https://pypi.python.org/pypi/appdirs>
__), so that the key
cannot be accidentally committed to CVS.
It then uses that key to symmetrically encrypt and decrypt your secrets.
The password encryption mode should not be used in your application - it is meant for easily sharing secrets among developers. It interactively prompts the user for a password when encrypting the secret. When decrypting, it prompts for the password again.
.. |Circle CI| image:: https://circleci.com/gh/Zemanta/py-secretcrypt.svg?style=svg :target: https://circleci.com/gh/Zemanta/py-secretcrypt .. |Codecov| image:: https://codecov.io/gh/Zemanta/py-secretcrypt/branch/master/graph/badge.svg :target: https://codecov.io/gh/Zemanta/py-secretcrypt
1.0.4 (2020-09-21) ++++++++++++++++++
1.0.3 (2017-11-02) ++++++++++++++++++
1.0.2 (2017-10-31) ++++++++++++++++++
1.0.1 (2017-10-31) ++++++++++++++++++
1.0.0 (2017-10-31) ++++++++++++++++++
0.9.1 (2017-03-28) ++++++++++++++++++
0.4 (2016-03-02) ++++++++++++++++++
0.3 (2016-03-02) ++++++++++++++++++
FAQs
Encrypt project secrets
We found that secretcrypt demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Socket uncovered npm malware campaign mimicking popular Node.js libraries and packages from other ecosystems; packages steal data and execute remote code.
Research
Socket's research uncovers three dangerous Go modules that contain obfuscated disk-wiping malware, threatening complete data loss.
Research
Socket uncovers malicious packages on PyPI using Gmail's SMTP protocol for command and control (C2) to exfiltrate data and execute commands.