#ifdef HAVE_GDSS
sprintf(buf, "%s:%s", info[U_NAME], info[U_MITID]);
si.rawsig = NULL;
- status = GDSS_Verify(buf, strlen(buf), info[U_SIGNATURE], &si);
+ status = GDSS_Verify((unsigned char *)buf, strlen(buf),
+ (unsigned char *)info[U_SIGNATURE], &si);
#else /* GDSS */
status = 0;
#endif /* GDSS */
SUB_ERROR)
return NULL;
+ strcpy(temp_buf, info[U_UID]);
if (GetValueFromUser("User's UID", &info[U_UID]) == SUB_ERROR)
return NULL;
+ if (strcmp(info[U_UID], UNIQUE_UID) && strcmp(info[U_UID], temp_buf))
+ {
+ struct mqelem *elem = NULL;
+ if (do_mr_query("get_user_account_by_uid", 1, &info[U_UID],
+ StoreInfo, &elem) == MR_SUCCESS)
+ {
+ Put_message("A user with that uid already exists in the database.");
+ Loop(QueueTop(elem), PrintUserInfo);
+ Loop(QueueTop(elem), FreeInfo);
+ FreeQueue(elem);
+ if (YesNoQuestion("Add new user anyway", TRUE) != TRUE)
+ return NULL;
+ }
+ }
+
if (GetValueFromUser("User's shell", &info[U_SHELL]) == SUB_ERROR)
return NULL;
if (name)
if (GetValueFromUser("Comments", &info[U_COMMENT]) == SUB_ERROR)
return NULL;
- if (!name)
+ if (!name || !atoi(info[U_STATE]))
{
if (YesNoQuestion("User needs secure Account Coupon to register",
atoi(info[U_SECURE]) ? TRUE : FALSE) == FALSE)
else
sprintf(temp_buf, "%s:%s", info[U_NAME], info[U_MITID]);
si.rawsig = NULL;
- i = GDSS_Verify(temp_buf, strlen(temp_buf), info[U_SIGNATURE], &si);
+ i = GDSS_Verify((unsigned char *)temp_buf, strlen(temp_buf),
+ (unsigned char *)info[U_SIGNATURE], &si);
/* If it's already signed OK, don't resign it. */
if (i != GDSS_SUCCESS)
{
free(info[U_SIGNATURE]);
info[U_SIGNATURE] = malloc(GDSS_Sig_Size() * 2);
sign_again:
- i = GDSS_Sign(temp_buf, strlen(temp_buf), info[U_SIGNATURE]);
+ i = GDSS_Sign((unsigned char *)temp_buf, strlen(temp_buf),
+ (unsigned char *)info[U_SIGNATURE]);
if (i != GDSS_SUCCESS)
com_err(program_name, gdss2et(i), "Failed to create signature");
else
{
unsigned char buf[256];
si.rawsig = buf;
- i = GDSS_Verify(temp_buf, strlen(temp_buf),
- info[U_SIGNATURE], &si);
- if (strlen(buf) > 68)
+ i = GDSS_Verify((unsigned char *)temp_buf, strlen(temp_buf),
+ (unsigned char *)info[U_SIGNATURE], &si);
+ if (strlen((char *)buf) > 68)
goto sign_again;
}
}