Comment chiffrer un fichier avec sa clef publique?

Je voudrai utiliser la clef publique d’un wallet pour crypter des fichiers seulement accessibles au possesseur de la clef privée correspondante.

Existe-t-il un outil en ligne de commande (comme gnupg) qui permette d’utiliser un jeu de clef (pubkey, authfile) pour ce genre d’opération ?

Tu peux le faire en Python avec duniterpy. Si tu as vraiment besoin d’un outil en ligne de commande, il est toujours possible de le faire en Python.

2 J'aimes

Et d’abord on dit pas crypter, on dit chiffrer ! Na !

Crypter ne veut rien dire.

3 J'aimes

Merci! Faudra que je modifie ce script pour lui passer ses paramètres en argument…
… Ensuite, comment je le dé-chiffre?

Mais sinon, cette librairie de chiffrage/déchiffrage, elle a été implémentée qu’en python ou quoi?
Personne n’a codé cet algo en C++ ou carrément avec du language machine???

L’implémentation officielle de Python est écrite en C. On l’appelle CPython.

Il y a d’autres implémentations, comme PyPY écrite en Python, RustPython écrite en Rust, qui n’implémente pas encore tout.

Les bibliothèques de cryptographies utilisée dans DuniterPy sont écrites en C. Par exemple libnacl est basé sur libsodium qui est écrite en C.

1 J'aime

Y’a du monde qui s’en sert de libsodium: https://download.libsodium.org/doc/libsodium_users
@vtexier, ça vaudrait le coup de rajouter duniterpy à la liste ?

Personne n’a encore fait de client en ligne de commande pour signer/vérifier et chiffrer/déchiffrer un fichier :wink:
Une fois fini et qui sait prendre salt / pepper ou pubkey / authfile. je pourrai écrire dans IPFS en sécurité sans être forcé de passer par gnupgp… Si quelqu’un a le temps avant moi? Ma plongée dans le système de fichier interplanétaire prend du temps…

Mais tout ce que tu demandes est déjà dans duniterpy nom d’une pipe en bois !

Tu peux chiffrer/déchiffrer et/ou signer/vérifier des fichiers binaires (donc aussi du texte binarisé) et j’ai même écrit tous les exemples. Je peux rien faire de plus, désolé.

2 J'aimes

Je ne demande rien, j’ai tout.
Faudra juste que je change une ligne pour passer au cryptage asymétrique.

echo $KEY | gpg -c --passphrase-fd 0 ./authfile

Après que j’ai fini de dompter mes clusters

ipfs-cluster-service daemon --bootstrap /ip4/51.15.2.211/tcp/9096/ipfs/QmQH7DfQpMDntrQ6VvHfqDNz5WKD3zw9AFNgpcnCG9npH2
10:51:03.801  INFO    service: Initializing. For verbose output run with "-l debug". Please wait... daemon.go:44
10:51:03.826  INFO  consensus: cleaning empty Raft data folder (/home/ipfs/.ipfs-cluster/raft) raft.go:657
10:51:03.829 WARNI    service: the /home/ipfs/.ipfs-cluster/raft folder has been rotated.  Next start will use an empty state state.go:184
10:51:03.949  INFO    cluster: IPFS Cluster v0.10.1 listening on:
        /p2p-circuit/ipfs/QmfYrgAkrwZdFLFC5M7KmEeS2dMsFcTXAFqc7TrCTd2Zj9
        /ip4/127.0.0.1/tcp/9096/ipfs/QmfYrgAkrwZdFLFC5M7KmEeS2dMsFcTXAFqc7TrCTd2Zj9
        /ip4/192.168.1.25/tcp/9096/ipfs/QmfYrgAkrwZdFLFC5M7KmEeS2dMsFcTXAFqc7TrCTd2Zj9

 cluster.go:114
10:51:03.962  INFO    restapi: REST API (HTTP): /ip4/127.0.0.1/tcp/9094 restapi.go:458
10:51:03.967  INFO    restapi: REST API (libp2p-http): ENABLED. Listening on:
        /p2p-circuit/ipfs/QmfYrgAkrwZdFLFC5M7KmEeS2dMsFcTXAFqc7TrCTd2Zj9
        /ip4/127.0.0.1/tcp/9096/ipfs/QmfYrgAkrwZdFLFC5M7KmEeS2dMsFcTXAFqc7TrCTd2Zj9
        /ip4/192.168.1.25/tcp/9096/ipfs/QmfYrgAkrwZdFLFC5M7KmEeS2dMsFcTXAFqc7TrCTd2Zj9

 restapi.go:475
10:51:03.971  INFO  ipfsproxy: IPFS Proxy: /ip4/127.0.0.1/tcp/9095 -> /ip4/127.0.0.1/tcp/5001 ipfsproxy.go:274
10:51:03.975  INFO  consensus: peer is ready to join a cluster raft.go:205
10:51:03.979  INFO    service: Bootstrapping to /ip4/51.15.2.211/tcp/9096/ipfs/QmQH7DfQpMDntrQ6VvHfqDNz5WKD3zw9AFNgpcnCG9npH2 daemon.go:173
10:51:04.500  INFO  consensus: Current Raft Leader: QmQH7DfQpMDntrQ6VvHfqDNz5WKD3zw9AFNgpcnCG9npH2 raft.go:280
10:51:04.520  INFO    cluster: Cluster Peers (without including ourselves): cluster.go:445
10:51:04.533  INFO    cluster:     - QmQH7DfQpMDntrQ6VvHfqDNz5WKD3zw9AFNgpcnCG9npH2 cluster.go:452
10:51:04.537  INFO    cluster: ** IPFS Cluster is READY ** cluster.go:460
10:51:05.230  INFO  consensus: Current Raft Leader: QmQH7DfQpMDntrQ6VvHfqDNz5WKD3zw9AFNgpcnCG9npH2 raft.go:280
10:51:05.235  INFO    cluster: QmfYrgAkrwZdFLFC5M7KmEeS2dMsFcTXAFqc7TrCTd2Zj9: joined QmQH7DfQpMDntrQ6VvHfqDNz5WKD3zw9AFNgpcnCG9npH2's cluster cluster.go:760