Exemplo n.º 1
0
krb5_error_code
decode_krb5_tgs_req(const krb5_data *code, krb5_kdc_req **repptr)
{
    setup_no_length(krb5_kdc_req *);
    alloc_field(rep);
    clear_field(rep,padata);
    clear_field(rep,client);
    clear_field(rep,server);
    clear_field(rep,ktype);
    clear_field(rep,addresses);
    clear_field(rep,authorization_data.ciphertext.data);
    clear_field(rep,unenc_authdata);
    clear_field(rep,second_ticket);
    clear_field(rep, kdc_state);

    check_apptag(12);
    retval = asn1_decode_kdc_req(&buf,rep);
    if (retval) clean_return(retval);
#ifdef KRB5_MSGTYPE_STRICT
    if (rep->msg_type != KRB5_TGS_REQ) clean_return(KRB5_BADMSGTYPE);
#endif

    cleanup_manual();
error_out:
    krb5_free_kdc_req(NULL, rep);
    return retval;
}
Exemplo n.º 2
0
char		*get_input(char *prompt)
{
	t_line	l;

	if (init_heredoc(&l, prompt) == 1)
		return (NULL);
	ft_putstr(prompt);
	while (1)
	{
		ft_bzero(l.buffer, 6);
		if (read(0, l.buffer, 6) == -1)
			return (clean_return(&l));
		if (l.buffer[0] == 4 && l.buffer[1] == 0 && l.str[0] == '\0'
				&& g_heredoc_expected)
			return (eof_ret());
		if (l.buffer[0] != 10)
			actions(&l);
		if (l.buffer[0] != 10 && ft_isprint(l.buffer[0]) ==\
				1)
			ft_print_key(&l);
		if (l.buffer[0] == 10)
			break ;
	}
	return (clean_return(&l));
}
Exemplo n.º 3
0
krb5_error_code
decode_krb5_kdc_req_body(const krb5_data *code, krb5_kdc_req **repptr)
{
    setup_buf_only(krb5_kdc_req *);
    alloc_field(rep);

    retval = asn1_decode_kdc_req_body(&buf,rep);
    if (retval) clean_return(retval);

    cleanup(free);
}
Exemplo n.º 4
0
krb5_error_code
decode_krb5_pa_pk_as_req_draft9(const krb5_data *code,
                                krb5_pa_pk_as_req_draft9 **repptr)
{
    setup_buf_only(krb5_pa_pk_as_req_draft9 *);
    alloc_field(rep);

    retval = asn1_decode_pa_pk_as_req_draft9(&buf, rep);
    if (retval) clean_return(retval);

    cleanup(free);
}
Exemplo n.º 5
0
static int	build(t_list *frags, char **cmd)
{
  char		*frag;

  *cmd = NULL;
  while ((frag = list_pop(frags)))
    {
      if (*cmd == NULL)
	{
	  if ((*cmd = strdup(frag)) == NULL)
	    return (clean_return(frag, cmd));
	}
      else
	{
	  if ((*cmd = realloc(*cmd, (strlen(*cmd) + strlen(frag) + 1))) == NULL)
	    return (clean_return(frag, cmd));
	  if (strcat(*cmd, frag) == NULL)
	    return (clean_return(frag, cmd));
	}
      free(frag);
    }
  (*cmd)[strlen(*cmd) - 1] = 0;
  return (RET_SUCCESS);
}
Exemplo n.º 6
0
krb5_error_code
decode_krb5_pa_fx_fast_request(const krb5_data *code, krb5_fast_armored_req **repptr)
{
    setup(krb5_fast_armored_req *);
    alloc_field(rep);
    clear_field(rep, armor);
    {
        int indef;
        unsigned int taglen;
        next_tag_from_buf(buf);
        if (tagnum != 0)
            clean_return(ASN1_BAD_ID);
    }
    {begin_structure();
        opt_field(rep->armor, 0, asn1_decode_fast_armor_ptr);
        get_field(rep->req_checksum, 1, asn1_decode_checksum);
        get_field(rep->enc_part, 2, asn1_decode_encrypted_data);
        end_structure();}
    rep->magic = KV5M_FAST_ARMORED_REQ;
    cleanup(free);
}