arnol Geschrieben June 14, 2018 at 22:34 Geschrieben June 14, 2018 at 22:34 Moin, ich hab' mich heute mal an der Authentifizierung am Stapel versucht. Perl ist die Sprache meiner Wahl. Dabei stellte ich fest, dass die Authentifizierung nicht klappte. Im brickv geht's allerdings. Kurzes rumstöbern in Tinkerforge/IPConnection.pm, Funktion 'authenticate', brachte zu Tage dass das Formatieren des Server-Nonces zur weiteren Verarbeitung Murks ergibt. Jetzt sieht der Teil der Funktion, auf den es mir ankommt, wie folgt aus: my @serverNonceArray = $self->_brickd_get_authentication_nonce(); #print "ServerNonceArray:\n" . Dumper(@serverNonceArray) . "\n\n"; # Following statement is superfluous, as $serverNonce is never used #my $serverNonce = \@serverNonceArray; # below, we need to dereference... my $serverNonceBytes = pack('C4', @{$serverNonceArray[0]}); #print "ServerNonceBytes:\n" . Dumper($serverNonceBytes) . "\n\n"; my $clientNonceNumber = $self->{next_authentication_nonce}++; und funktioniert. Kompletten Patch gerne auf Anfrage, wird aber vermutlich nicht nötig sein :-) Möglicherweise ist die korrekte Kur aber eine Ebene tiefer im API sinnvoller, aber *darein* hab' ich mich nicht begeben... Arno Zitieren
photron Geschrieben June 26, 2018 at 13:56 Geschrieben June 26, 2018 at 13:56 Stimmt, da ist ein Bug. Das hat original mal funktioniert, und ja die $serverNonce Variable war schon immer überflüssig. Allerdings wurde danach die Unpack Logik überarbeitet, so dass dann _brickd_get_authentication_nonce() nicht mehr ein Array sondern eine Referenz auf ein Array zurückgegeben hat. Die authenticate Funktion wurde aber daran nicht angepasst. Deine Lösung dazu funktioniert, hier ist meine: https://github.com/Tinkerforge/generators/commit/ce21670b63cc07417e0d3540a57f9f0d53a32fd7 Danke für den Hinweis! Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.