[Chiffrement] Génération clés (Elgamal)
Bonjour tout le monde,
Je reviens vers vous car je me heurte à un problème de chiffrement qui me dépasse..
Pour vous situer le contexte, il y a un développeur qui s'occupe de l'api du projet et il y a une partie du json qui va être chiffrée.
Je dois donc déchiffrer son contenu.
Il m'a listé toute les fonctions dont je vais avoir besoin côté iOs.
J'ai donc son code javascript et je dois refaire l'équivalent en swift.
Je bloque sur la génération de clés privées/publiques en utilisant le chiffrement ElGamal
Voici la fonction javascript que j'ai :
function generate_keypair () {
var keypair = sjcl.ecc.elGamal.generateKeys(256) // On génère la paire de clefs asymétriques, (courbe P-256)
console.log('[keypair]', keypair)
var public_key = keypair.pub.get()
var secret_key = keypair.sec.get()
console.log('[public_key]', public_key)
console.log('[secret_key]', secret_key)
var public_key_base64 = sjcl.codec.base64.fromBits(public_key.x.concat(public_key.y))
var secret_key_base64 = sjcl.codec.base64.fromBits(secret_key)
console.log('[result]', {publickey: public_key_base64, secretkey: secret_key_base64})
return {publickey: public_key_base64, secretkey: secret_key_base64}
}
La ligne qui m'intéresse est : sjcl.ecc.elGamal.generateKeys(256)
Il utilise la librairie SJCL : https://github.com/bitwiseshiftleft/sjcl/
Quelqu'un sait comment générer une paire de clés privée/publique en swift en utilisant le chiffrement d'ElGamal ?
Merci de votre aide
Réponses
Ce n'est pas un sujet que je maîtrise, mais CryptoKit propose un chiffrement avec une courbe P-256.
Utilise CryptoKit si tu peux!
Même réponse que Céroce. Il y a un framework de codage avec Swift. Regarde s'il ne contient pas déjà la solution a ton problème, ou des outils simplifiant ta tâche.
C'est pas un sujet que je maitrise non plus
Du coup, merci pour ton aide, tu m'as débloqué pour générer les clés privées/publiques ^^
Le code si ça peut aider les prochains..
Maintenant que j'ai mes clés privées/publiques, il faut que je chiffre un message et j'ai du mal à comprendre le principe
Voici la fonction en javascript pour chiffrer :
Je suis tombé sur ce lien aussi : https://www.andyibanez.com/posts/common-cryptographic-operations-with-cryptokit/
Je retourne faire quelques tests..
Petit up sur ce post..
Pour le chiffrement symétrique, c'est bon, j'ai réussi à m'en sortir (je posterai le projet quand tout fonctionnera, si ça peut aider quelqu'un d'autre un jour..)
Je cherche a faire un chiffrement asymétrique (courbe p-256)
Dans beaucoup d'exemples, ils utilisent bien la génération de clé asymétrique (ça c'est bien) mais finissent par utiliser un chiffrement symétrique (de ce que j'ai compris et c'est pas ce qui m'intéresse pour le coup).
Est ce que quelqu'un a un exemple clair ou un lien d'un chiffrement asymétrique ?
Je cherche un exemple qui utilise un "nonce/iv", un "tag" et un "cipher" (si ça parle a quelqu'un..)
Merci de votre aide