summaryrefslogtreecommitdiff
path: root/lib/auth_psk_passwd.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/auth_psk_passwd.c')
-rw-r--r--lib/auth_psk_passwd.c220
1 files changed, 120 insertions, 100 deletions
diff --git a/lib/auth_psk_passwd.c b/lib/auth_psk_passwd.c
index 76a2d597d1..237a1d015e 100644
--- a/lib/auth_psk_passwd.c
+++ b/lib/auth_psk_passwd.c
@@ -43,44 +43,48 @@
/* this function parses passwd.psk file. Format is:
* string(username):hex(passwd)
*/
-static int pwd_put_values(gnutls_datum* psk, char *str)
+static int
+pwd_put_values (gnutls_datum * psk, char *str)
{
- char *p;
- int len, ret;
-
- p = strchr(str, ':');
- if (p == NULL) {
- gnutls_assert();
- return GNUTLS_E_SRP_PWD_PARSING_ERROR;
+ char *p;
+ int len, ret;
+
+ p = strchr (str, ':');
+ if (p == NULL)
+ {
+ gnutls_assert ();
+ return GNUTLS_E_SRP_PWD_PARSING_ERROR;
}
- *p = '\0';
- p++;
+ *p = '\0';
+ p++;
- /* skip username
- */
+ /* skip username
+ */
- /* read the key
- */
- len = strlen(p);
- if (p[len - 1] == '\n' || p[len - 1] == ' ')
- len--;
+ /* read the key
+ */
+ len = strlen (p);
+ if (p[len - 1] == '\n' || p[len - 1] == ' ')
+ len--;
- psk->size = len / 2;
- psk->data = gnutls_malloc( psk->size);
- if (psk->data == NULL) {
- gnutls_assert();
- return GNUTLS_E_MEMORY_ERROR;
+ psk->size = len / 2;
+ psk->data = gnutls_malloc (psk->size);
+ if (psk->data == NULL)
+ {
+ gnutls_assert ();
+ return GNUTLS_E_MEMORY_ERROR;
}
- ret = _gnutls_hex2bin( (opaque*)p, len, psk->data, &psk->size);
- if ( ret < 0) {
- gnutls_assert();
- return ret;
+ ret = _gnutls_hex2bin ((opaque *) p, len, psk->data, &psk->size);
+ if (ret < 0)
+ {
+ gnutls_assert ();
+ return ret;
}
- return 0;
+ return 0;
}
@@ -88,110 +92,126 @@ static int pwd_put_values(gnutls_datum* psk, char *str)
/* Randomizes the given password entry. It actually sets a random password.
* Returns 0 on success.
*/
-static int _randomize_psk(gnutls_datum * psk)
+static int
+_randomize_psk (gnutls_datum * psk)
{
- psk->data = gnutls_malloc(16);
- if (psk->data == NULL) {
- gnutls_assert();
- return GNUTLS_E_MEMORY_ERROR;
+ psk->data = gnutls_malloc (16);
+ if (psk->data == NULL)
+ {
+ gnutls_assert ();
+ return GNUTLS_E_MEMORY_ERROR;
}
- psk->size = 16;
- if (gc_nonce ((char*)psk->data, 16) != GC_OK) {
- gnutls_assert();
- return GNUTLS_E_RANDOM_FAILED;
+ psk->size = 16;
+ if (gc_nonce ((char *) psk->data, 16) != GC_OK)
+ {
+ gnutls_assert ();
+ return GNUTLS_E_RANDOM_FAILED;
}
- return 0;
+ return 0;
}
/* Returns the PSK key of the given user.
* If the user doesn't exist a random password is returned instead.
*/
-int _gnutls_psk_pwd_find_entry(gnutls_session_t session, char *username,
- gnutls_datum* psk)
+int
+_gnutls_psk_pwd_find_entry (gnutls_session_t session, char *username,
+ gnutls_datum * psk)
{
- gnutls_psk_server_credentials_t cred;
- FILE *fd;
- char line[2 * 1024];
- uint i, len;
- int ret;
-
- cred = (gnutls_psk_server_credentials_t)
- _gnutls_get_cred(session->key, GNUTLS_CRD_PSK, NULL);
- if (cred == NULL) {
- gnutls_assert();
- return GNUTLS_E_INSUFFICIENT_CREDENTIALS;
+ gnutls_psk_server_credentials_t cred;
+ FILE *fd;
+ char line[2 * 1024];
+ uint i, len;
+ int ret;
+
+ cred = (gnutls_psk_server_credentials_t)
+ _gnutls_get_cred (session->key, GNUTLS_CRD_PSK, NULL);
+ if (cred == NULL)
+ {
+ gnutls_assert ();
+ return GNUTLS_E_INSUFFICIENT_CREDENTIALS;
}
- /* if the callback which sends the parameters is
- * set, use it.
- */
- if (cred->pwd_callback != NULL) {
- ret = cred->pwd_callback(session, username, psk);
-
- if (ret == 1) { /* the user does not exist */
- ret = _randomize_psk(psk);
- if (ret < 0) {
- gnutls_assert();
- return ret;
- }
- return 0;
+ /* if the callback which sends the parameters is
+ * set, use it.
+ */
+ if (cred->pwd_callback != NULL)
+ {
+ ret = cred->pwd_callback (session, username, psk);
+
+ if (ret == 1)
+ { /* the user does not exist */
+ ret = _randomize_psk (psk);
+ if (ret < 0)
+ {
+ gnutls_assert ();
+ return ret;
+ }
+ return 0;
}
- if (ret < 0) {
- gnutls_assert();
- return GNUTLS_E_SRP_PWD_ERROR;
+ if (ret < 0)
+ {
+ gnutls_assert ();
+ return GNUTLS_E_SRP_PWD_ERROR;
}
- return 0;
+ return 0;
}
- /* The callback was not set. Proceed.
- */
- if (cred->password_file == NULL) {
- gnutls_assert();
- return GNUTLS_E_SRP_PWD_ERROR;
+ /* The callback was not set. Proceed.
+ */
+ if (cred->password_file == NULL)
+ {
+ gnutls_assert ();
+ return GNUTLS_E_SRP_PWD_ERROR;
}
- /* Open the selected password file.
- */
- fd = fopen(cred->password_file, "r");
- if (fd == NULL) {
- gnutls_assert();
- return GNUTLS_E_SRP_PWD_ERROR;
+ /* Open the selected password file.
+ */
+ fd = fopen (cred->password_file, "r");
+ if (fd == NULL)
+ {
+ gnutls_assert ();
+ return GNUTLS_E_SRP_PWD_ERROR;
}
- len = strlen(username);
- while (fgets(line, sizeof(line), fd) != NULL) {
- /* move to first ':' */
- i = 0;
- while ((line[i] != ':') && (line[i] != '\0') && (i < sizeof(line))) {
- i++;
+ len = strlen (username);
+ while (fgets (line, sizeof (line), fd) != NULL)
+ {
+ /* move to first ':' */
+ i = 0;
+ while ((line[i] != ':') && (line[i] != '\0') && (i < sizeof (line)))
+ {
+ i++;
}
- if (strncmp(username, line, MAX(i, len)) == 0) {
- ret = pwd_put_values(psk, line);
- if (ret < 0) {
- gnutls_assert();
- return GNUTLS_E_SRP_PWD_ERROR;
- }
- return 0;
+ if (strncmp (username, line, MAX (i, len)) == 0)
+ {
+ ret = pwd_put_values (psk, line);
+ if (ret < 0)
+ {
+ gnutls_assert ();
+ return GNUTLS_E_SRP_PWD_ERROR;
+ }
+ return 0;
}
}
- /* user was not found. Fake him.
- * the last index found and randomize the entry.
- */
- ret = _randomize_psk(psk);
- if (ret < 0) {
- gnutls_assert();
- return ret;
+ /* user was not found. Fake him.
+ * the last index found and randomize the entry.
+ */
+ ret = _randomize_psk (psk);
+ if (ret < 0)
+ {
+ gnutls_assert ();
+ return ret;
}
- return 0;
+ return 0;
}
-#endif /* ENABLE PSK */
+#endif /* ENABLE PSK */