Exemplo n.º 1
0
as_status
aerospike_change_password(aerospike* as, as_error* err, const as_policy_admin* policy, const char* user, const char* password)
{
    as_error_reset(err);

    char hash[AS_PASSWORD_HASH_SIZE];
    as_password_get_constant_hash(password, hash);

    if (! user) {
        user = as->cluster->user;
    }
    uint8_t buffer[AS_STACK_BUF_SIZE];
    uint8_t* p = buffer + 8;

    p = as_admin_write_header(p, CHANGE_PASSWORD, 3);
    p = as_admin_write_field_string(p, USER, user);
    p = as_admin_write_field_string(p, OLD_PASSWORD, as->cluster->password);
    p = as_admin_write_field_string(p, PASSWORD, hash);
    int status = as_admin_execute(as, err, policy, buffer, p);

    if (status == 0) {
        as_cluster_change_password(as->cluster, user, hash);
    }
    return status;
}
Exemplo n.º 2
0
bool
as_config_set_user(as_config* config, const char* user, const char* password)
{
	if (user && *user) {
		if (as_strncpy(config->user, user, sizeof(config->user))) {
			return false;
		}
		
		return as_password_get_constant_hash(password, config->password);
	}
	else {
		return false;
	}
}
Exemplo n.º 3
0
bool
as_password_prompt_hash(const char* password, char* hash)
{
	char pass[AS_PASSWORD_HASH_SIZE];
	
	if (password && *password) {
		as_strncpy(pass, password, sizeof(pass));
	}
	else {
		as_password_prompt(pass, sizeof(pass));
	}
	
	return as_password_get_constant_hash(pass, hash);
}
Exemplo n.º 4
0
int
aerospike_create_user(aerospike* as, const as_policy_admin* policy, const char* user, const char* password, const char** roles, int roles_size)
{
	char hash[AS_PASSWORD_HASH_SIZE];
	as_password_get_constant_hash(password, hash);
	
	uint8_t buffer[STACK_BUF_SZ];
	uint8_t* p = buffer + 8;
	
	p = write_header(p, CREATE_USER, 3);
	p = write_field_string(p, USER, user);
	p = write_field_string(p, PASSWORD, hash);
	p = write_roles(p, roles, roles_size);
	return as_execute(as, policy, buffer, p);
}
Exemplo n.º 5
0
int
aerospike_set_password(aerospike* as, const as_policy_admin* policy, const char* user, const char* password)
{
	char hash[AS_PASSWORD_HASH_SIZE];
	as_password_get_constant_hash(password, hash);
	
	if (! user) {
		user = as->cluster->user;
	}
	uint8_t buffer[STACK_BUF_SZ];
	uint8_t* p = buffer + 8;
	
	p = write_header(p, SET_PASSWORD, 2);
	p = write_field_string(p, USER, user);
	p = write_field_string(p, PASSWORD, hash);
	int status = as_execute(as, policy, buffer, p);
	
	if (status == 0) {
		as_cluster_change_password(as->cluster, user, hash);
	}
	return status;
}