Thread Crypt::NaCl::Sodium Übersetzung aus C (4 answers)
Opened by Perlentaucher at 2019-02-04 15:00

Perlentaucher
 2019-02-04 15:00
#189710 #189710
User since
2014-08-04
26 Artikel
BenutzerIn

user image
Hallo zusammen

Ich habe hier ein umfangreiches Problem, bei dem ich nicht weiterkomme - um nicht zu sagen "am Verzweifeln bin".
Ich vermute, dass Problem zu einfach zu lösen...

Ausgangslage
Ich möchte gemäß der API Beschreibung DoorBird API ab Seite 26 "EVENT MONITORING (UDP BROADCASTS)" den ersten Teil des dort hinterlegten C-Code in Perl umwandeln.

Der C-Code lautet

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
unsigned char* stretchPasswordArgon(const char *password, unsigned char *salt, unsigned* oplimit, unsigned* memlimit) {
if (sodium_is_zero(salt, CRYPTO_SALT_BYTES) && random_bytes(salt, CRYPTO_SALT_BYTES)) {
return NULL;
}
unsigned char* key = malloc(CRYPTO_ARGON_OUT_SIZE);
if (!*oplimit) {
*oplimit = crypto_pwhash_argon2i_OPSLIMIT_INTERACTIVE;
}
if (!*memlimit) {
*memlimit = crypto_pwhash_MEMLIMIT_MIN;
}
if (crypto_pwhash(key, CRYPTO_ARGON_OUT_SIZE, password, str_len(password), salt, *oplimit, *memlimit, crypto_pwhash_ALG_DEFAULT)) {
LOGGING("Argon2 Failed");
*oplimit = 0;
*memlimit = 0;
CLEAN(key);
return NULL;
}
return key;
}


Hierzu gibt es Werte - Beispiele, welche Schritt für Schritt verglichen werden können.

Auch habe ich für die "libsodium method" das Perl-Paket Crypt::NaCl::Sodium gefunden und mit allen Abhängigkeiten installiert.

Frage
Doch jetzt weiß ich zur Zeit nicht, wie ich an den Key kommen soll, den ich mit $key = $crypto_pwhash->key( $FiveCharPw, $SALT, bytes => 32, opslimit => hex($OPSLIMIT), memlimit => hex($MEMLIMIT)); generiere.

Die Anleitung zu Crypt::NaCL::Sodium::pwhash sagt nur aus:
Quote
Returns Data::BytesLocker object.


Die Anleitung zu Data::BytesLocker sagt nichts darüber aus, wie ich an den Key komme um den mit dem vorgegebenen aus der Anleitung zu vergleichen.

Hat Jemand von Euch eine leiseste Ahnung, wie man an den Key aus dem "Data::BytesLocker object" bekommt?


Danke für Eure Hilfe

Gruss
Sailor

View full thread Crypt::NaCl::Sodium Übersetzung aus C