From 94c1eec169db66bb4ad9d633342aead3b0f35b9f Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Tue, 1 May 2012 12:12:37 +0200 Subject: Don’t hardcode passwords MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It’s a bad idea to hardcode these, although playback does not work with non-android login yet. --- src/libpiano/piano.c | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) (limited to 'src/libpiano/piano.c') diff --git a/src/libpiano/piano.c b/src/libpiano/piano.c index f9dfa51..bd8847b 100644 --- a/src/libpiano/piano.c +++ b/src/libpiano/piano.c @@ -40,8 +40,23 @@ THE SOFTWARE. * @param piano handle * @return nothing */ -void PianoInit (PianoHandle_t *ph) { +void PianoInit (PianoHandle_t *ph, const char *partnerUser, + const char *partnerPassword, const char *device, const char *inkey, + const char *outkey) { memset (ph, 0, sizeof (*ph)); + ph->partner.user = strdup (partnerUser); + ph->partner.password = strdup (partnerPassword); + ph->partner.device = strdup (device); + + gcry_cipher_open (&ph->partner.in, GCRY_CIPHER_BLOWFISH, + GCRY_CIPHER_MODE_ECB, 0); + gcry_cipher_setkey (ph->partner.in, (const unsigned char *) inkey, + strlen (inkey)); + + gcry_cipher_open (&ph->partner.out, GCRY_CIPHER_BLOWFISH, + GCRY_CIPHER_MODE_ECB, 0); + gcry_cipher_setkey (ph->partner.out, (const unsigned char *) outkey, + strlen (outkey)); } /* destroy artist linked list @@ -150,6 +165,18 @@ void PianoDestroyUserInfo (PianoUserInfo_t *user) { free (user->listenerId); } +/* destroy partner + */ +static void PianoDestroyPartner (PianoPartner_t *partner) { + free (partner->user); + free (partner->password); + free (partner->device); + free (partner->authToken); + gcry_cipher_close (partner->in); + gcry_cipher_close (partner->out); + memset (partner, 0, sizeof (*partner)); +} + /* frees the whole piano handle structure * @param piano handle * @return nothing @@ -157,6 +184,7 @@ void PianoDestroyUserInfo (PianoUserInfo_t *user) { void PianoDestroy (PianoHandle_t *ph) { PianoDestroyUserInfo (&ph->user); PianoDestroyStations (ph->stations); + PianoDestroyPartner (&ph->partner); /* destroy genre stations */ PianoGenreCategory_t *curGenreCat = ph->genreStations, *lastGenreCat; while (curGenreCat != NULL) { @@ -166,7 +194,6 @@ void PianoDestroy (PianoHandle_t *ph) { curGenreCat = curGenreCat->next; free (lastGenreCat); } - free (ph->partnerAuthToken); memset (ph, 0, sizeof (*ph)); } -- cgit v1.2.3