Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
Avec PB, un outil de crypto a été fourni.
Pour crypter un champ texte en SHA-1, PB fournit un morceau de script :
n_cst_cryptography lnv_crypto PBCrypto pbcrypto string ls_texte, ls_result boolean lb_return ls_texte = "toto" lb_return = lnv_crypto.of_getInstance(pbcrypto) messagebox("lb_return", lb_return) IF lnv_crypto.of_getInstance(pbcrypto) THEN ls_result = pbcrypto.generateMessageDigest("SHA-1", ls_texte) END IF
Le problème est au niveau de lnv_crypto.of_getInstance(pbcrypto).
La variable lb_return retourne FALSE.
Je ne sais pas pourquoi.
De plus, ces objets et méthodes sont dans des pbd, donc illisibles.
Dernière modification par bdf94 (19-03-2008 14:15:47)
Hors ligne
Bonjour,
Regarde s'il ne faudrait pas faire un Create de ton pbcrypto avant de récupérer l'instance. Je ne suis pas sûr que cet objet
soit autoinstanciate.
Hors ligne
Le même code est mis sur un poste de développeur et sur un poste utilisateur.
Poste développeur : OK lb_return=true
Poste utilisateur : HS lb_return=false
Hors ligne
Les pbd crypto ont été deployées sur le poste utilisateur ?
Hors ligne
OUI
Hors ligne
sybase doc a écrit:
The PBCrypto proxy and the n_cst_cryptography non-visual object that knows how to create an instance of the proxy object reside in the library named pbcryptoclient100.pbd, which must be in the PowerBuilder library list in addition to the pbejbclient100.pbd. Both libraries should be located in the .\Program Files\Sybase\Shared\PowerBuilder directory. (The pbcryptoclient100.pbd is installed in Program Files\Sybase\PowerBuilder 10.0\Cryptograph.) Additionally, the solution relies on three Java archive (.jar) files that must be present in the Java CLASSPATH and accessible to PowerBuilder. The three libraries are:
• Java Cryptography Extensions library found in jce.jar, obtainable from the JDK installation (JDK 1.4 or later)
• A JCE provider, such one available from Bouncy Castle at http://bouncycastle.org, bcprov-jdk14-1xx.jar, where xx represents the version number
• The Java/PowerBuilder veneer library, pbcrypto-1_0.jar
3
The last library, pbcrypto-1_0.jar, is the entry point into the Java environment from the PowerBuilder environment. In fact, the PBCrypto proxy was generated from one of the Java classes inside the pbcrypto-1_0.jar file.
Donc il te faut 5 fichiers:
1) pbcryptoclient100.pbd
2) pbejbclient100.pbd
3) jce.jar
4) bcprov-jdk14-1xx.jar
5) pbcrypto-1_0.jar
Enfin, tu n'a pas mis ton code dans un bloc try catch comme préconisé par Sybase
Hors ligne
J'ai déjà tous ces fichiers d'installer
Hors ligne
Peut-être un problème de version des runtimes (jdk, pbvm, pbjvm...) si cela fonctionne sur un poste de dev...
Hors ligne
Effectivement, la grande différence entre un poste de dev et un poste utilisateur c'est que le poste de dev sait où trouver les ddl & cie qui manque à un exe pour qu'il fonctionne correctement.
On dit vive les variables d'environement !! Et bonjour à toute la m***e pour retrouver ce petit monde pour le déployer sur le poste utilisateur.
Ouais je sais ça résoud pas ton problème mais ça donne une direction peut-être ?
Hors ligne
SOLUTION :
1. Installer sur les postes utilisateurs les fichiers suivants :
bcprov-jdk14-119.jar ; jce.jar ; pbcrypto-1_0.jar ; pbejbclient100.jar
et pbejbclient100.pbx
2 . Installer JAVA
3. Mettre les 4 fichiers jar dans le CLASSPATH
Hors ligne