IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Utiliser DLL Crypto++


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 88
    Par défaut Utiliser DLL Crypto++
    Bonjour,
    je cherche à utiliser la bibliothèque Crypto++ en faisant une dll pour l'utiliser dans windev , le c++ n'est pas vraiment dans mes cordes .
    mon but étant de signer une chaine de caractère avec une clé priver créer avec openssl
    je l'ai fait en c# mais mon soucis étant d'éviter d'installer la librairie obligatoire assez contraigante : Visual C++ pour visual Studion 2013
    le code est simple en c#
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    static public string Signature(string _sPrivateKeyXML,string _sDataToSign, ref string __sMessErr)
            {
                try
                {
                RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
                RSA.FromXmlString(_sPrivateKeyXML);
                RSAPKCS1SignatureFormatter RSAFormatter = new RSAPKCS1SignatureFormatter(RSA);
                RSAFormatter.SetHashAlgorithm("SHA1");r.
                SHA1CryptoServiceProvider UnCrypto = new SHA1CryptoServiceProvider();
                byte[] DataSign = Encoding.ASCII.GetBytes(_sDataToSign);
                byte[] Sign = UnCrypto.ComputeHash(DataSign);
                byte[] SignedHash = RSAFormatter.CreateSignature(Sign);
                return Convert.ToBase64String(SignedHash);
                }
                catch (CryptographicException e)
                {
                    __sMessErr = e.ToString();
                    return null;
                }
            }
    c'est pas la même music en c++
    quelqu'un pourrait me dire si déjà Crypto++ intègre la même signature de chaine ? et si par hasard quelqu'un aurait un bout de code le permettant ?
    merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 455
    Par défaut
    Crypto++ est une bibliothèque C++, à la base.
    Elle s'utilise comme toute bibliothèque C++, en commençant par lire sa documentation.
    https://www.cryptopp.com/wiki/Visual_Studio

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 88
    Par défaut
    bonjour,
    oui c'est le principe de lire la documentation ,c'est parce que j'ai essayé que j'ai fais ce post ,çà doit être relativement simple pour un habitué du c++ mais pas pour moi

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 455
    Par défaut
    ,çà doit être relativement simple pour un habitué du c++ mais pas pour moi
    Chaque bibliothèque fait sa tambouille, donc non, on est à égalité, faut lire la documentation, et la comprendre.

    C'est quoi le message d'erreur ou ce que vous ne comprenez pas dans la documentation ?

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 88
    Par défaut
    Merci Bacelar de ta réponse ,
    j'ai commencer à utiliser visual c++ 2008 et cryptopp562 (seul se couple fonctionne à la compilation sans soucis);
    j'arrive bien à maîtriser certaine classe mais quand j'essaye d'utiliser la fonction Base64Encoder çà plante la génération (mais pas la compilation) ,comme dans l'exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    byte decoded[] = { 0xFF, 0xEE, 0xDD, 0xCC, 0xBB, 0xAA, 0x99, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x00 };
    string encoded;
    Base64Encoder encoder;
    encoder.Put(decoded, sizeof(decoded));
    encoder.MessageEnd();
    word64 size = encoder.MaxRetrievable();
    if(size)
    {
        encoded.resize(size);		
        encoder.Get((byte*)encoded.data(), encoded.size());
    }
    cout << encoded << endl;
    j'ai un magnifique
    dlltest.obj : error LNK2019: symbole externe non résolu "public: virtual void __thiscall CryptoPP::Base64Encoder::IsolatedInitialize(class CryptoPP::NameValuePairs const &)" (?IsolatedInitialize@Base64Encoder@CryptoPP@@UAEXABVNameValuePairs@2@@Z) référencé dans la fonction "public: __thiscall CryptoPP::Base64Encoder::Base64Encoder(class CryptoPP::BufferedTransformation *,bool,int)" (??0Base64Encoder@CryptoPP@@QAE@PAVBufferedTransformation@1@_NH@
    c'est 'Base64Encoder encoder' qui fait ce plantage
    quelqu'un aurait une idée ?

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 455
    Par défaut
    Vous avez juste une erreur d'édition de lien.
    Le compilateur est content, tout ce que vous utilisez a été déclaré dans des .h, OK.
    Mais l'éditeur de lien, lui, il lui faut le vrai code binaire.
    Donc, si l'intégration de la bibliothèque se fait via des .lib, vous avez oubliez de mentionner le .lib contenant le code de "CryptoPP::Base64Encoder::Base64Encoder".

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation DLL créée sous VB6
    Par Dertron dans le forum Access
    Réponses: 12
    Dernier message: 05/04/2006, 14h54
  2. Problème utilisation DLL
    Par Tub-95 dans le forum MFC
    Réponses: 4
    Dernier message: 02/11/2005, 12h00
  3. [VB6] Utiliser dll .Net dans VB6
    Par sokette dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 31/03/2005, 14h34
  4. Utiliser Dll Delphi
    Par smyley dans le forum MFC
    Réponses: 9
    Dernier message: 12/03/2005, 18h21
  5. [D8] Utilisation dll D7 sous D8
    Par smyley dans le forum Delphi .NET
    Réponses: 2
    Dernier message: 01/11/2004, 11h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo