Probleme de cryptage

bonjour, j'ai un problème j'ai fais un algorithme sur flowgorithm de chiffrage asymétrique mais quand je le convertie en Arduino ça ne marche plus pourriez vous regarder et m'aider svp

Code arduino:

code_MA2.ino (2,8 Ko)

outils de dechiffrement : RSA algorithm-decrypt - Replit

pseudo code flowgorithm:
#include <iostream>
#include <sstream>
#include <string>
#include <cstdlib>
#include <cmath>
#include <ctime>

using namespace std;

// Headers
string toString (double);
int toInt (string);
double toDouble (string);
int chiffrer(int m, int e);
int cleAgent(string x);
int modexp(int a, int e, int n);

int main() {
    srand(time(0));   //Seed random number generator
    
    int e, m, mp, c;
    string x;
    
    cout << "Identifiez-vous." << endl;
    cin >> x;
    m = rand() % 2881;
    e = cleAgent(x);
    c = chiffrer(m, e);
    cout << "Message à déchiffrer :" << c << endl;
    cin >> mp;
    if (m == mp) {
        cout << "Vous êtes authentifié! Bienvenue agent" << x << endl;
    } else {
        cout << "Erreur d'authentification, le système de sécurité se déclenchera dans 5 secondes" << endl;
    }
    return 0;
}

int chiffrer(int m, int e) {
    int n, c;
    
    n = 43 * 67;
    c = modexp(m, e, n);
    
    return c;
}

int cleAgent(string x) {
    int e[16];
    
    e[0] = 601;
    e[1] = 619;
    e[2] = 631;
    e[3] = 641;
    e[4] = 647;
    e[5] = 653;
    e[6] = 661;
    e[7] = 673;
    e[8] = 691;
    e[9] = 701;
    e[10] = 733;
    e[11] = 739;
    e[12] = 751;
    e[13] = 797;
    e[14] = 809;
    e[15] = 811;
    int i;
    
    if (x == "A") {
        i = 0;
    } else {
        if (x == "B") {
            i = 1;
        } else {
            if (x == "C") {
                i = 2;
            } else {
                if (x == "D") {
                    i = 3;
                } else {
                    if (x == "E") {
                        i = 4;
                    } else {
                        if (x == "F") {
                            i = 5;
                        }
                    }
                }
            }
        }
    }
    if (x == "H") {
        i = 6;
    } else {
        if (x == "I") {
            i = 7;
        } else {
            if (x == "J") {
                i = 8;
            } else {
                if (x == "K") {
                    i = 9;
                } else {
                    if (x == "L") {
                        i = 10;
                    }
                }
            }
        }
    }
    if (x == "M") {
        i = 11;
    } else {
        if (x == "N") {
            i = 12;
        } else {
            if (x == "O") {
                i = 13;
            } else {
                if (x == "P") {
                    i = 14;
                } else {
                    if (x == "Q") {
                        i = 15;
                    }
                }
            }
        }
    }
    int u;
    
    u = e[i];
    
    return u;
}

int modexp(int a, int e, int n) {
    int r;
    
    if (e < 0) {
        cout << "unhandled case" << endl;
        exit(-1);
    }
    if (a == 0 || n == 1) {
        r = 0;
    } else {
        r = 1;
        while (e > 0) {
            r = r * (a % n) % n;
            e = e - 1;
        }
    }
    
    return r;
}

// The following implements type conversion functions.
string toString (double value) { //int also
    stringstream temp;
    temp << value;
    return temp.str();
}

int toInt (string text) {
    return atoi(text.c_str());
}

double toDouble (string text) {
    return atof(text.c_str());
}

Bonjour,
Merci de prendre quelques minutes pour lire les bonnes pratiques du forum francophone et de les appliquer.

En particulier la partie mise en forme du code

Bonjour

Le programme pérsenté 'est pas un programme conforme à la struecture des fichiers .ino
voir ici où le sujet est actuellement traitée en réponse à une question posée avec le pseudo ahocke :wink:

https://forum.arduino.cc/t/utiliser-un-programme-en-c-sur-arduino/1051882/27

Pas de doublons sur ce forum , pour éviter la dispersion des réponses à un même sujet et le risque de perte de temps des aidants -> Fil clos