static void printRdn(const NSS_RDN *rdn, OidParser &parser)
{
	unsigned numAtvs = nssArraySize((const void **)rdn->atvs);
	char						*fieldName;

	for(unsigned dex=0; dex<numAtvs; dex++) {
		const NSS_ATV *atv = rdn->atvs[dex];
		if(compareOids(&atv->type, &CSSMOID_CountryName)) {
			fieldName = "Country       ";      
		}
		else if(compareOids(&atv->type, &CSSMOID_OrganizationName)) {
			fieldName = "Org           ";      
		}
		else if(compareOids(&atv->type, &CSSMOID_LocalityName)) {
			fieldName = "Locality      ";      
		}
		else if(compareOids(&atv->type, &CSSMOID_OrganizationalUnitName)) {
			fieldName = "OrgUnit       ";      
		}
		else if(compareOids(&atv->type, &CSSMOID_CommonName)) {
			fieldName = "Common Name   ";      
		}
		else if(compareOids(&atv->type, &CSSMOID_Surname)) {
			fieldName = "Surname       ";      
		}
		else if(compareOids(&atv->type, &CSSMOID_Title)) {
			fieldName = "Title         ";      
		}
		else if(compareOids(&atv->type, &CSSMOID_Surname)) {
			fieldName = "Surname       ";      
		}
		else if(compareOids(&atv->type, &CSSMOID_StateProvinceName)) {
			fieldName = "State         ";      
		}
		else if(compareOids(&atv->type, &CSSMOID_CollectiveStateProvinceName)) {
			fieldName = "Coll. State   ";      
		}
		else if(compareOids(&atv->type, &CSSMOID_EmailAddress)) {
			/* deprecated, used by Thawte */
			fieldName = "Email addrs   ";      
		}
		else {
			fieldName = "Other name    ";      
		}
		indent(); printf("%s      : ", fieldName);
		/* Not strictly true here, but we'll just assume we can print everything */
		printAscii((char *)atv->value.item.Data, atv->value.item.Length,
			atv->value.item.Length);
		putchar('\n');
	}
}
Esempio n. 2
0
void CAsciiwDlg::OnPaint() {
  if (IsIconic()) {
    CPaintDC dc(this);

    SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

    int   cxIcon = GetSystemMetrics(SM_CXICON);
    int   cyIcon = GetSystemMetrics(SM_CYICON);
    CRect rect   = getClientRect(this);
    int   x      = (rect.Width() - cxIcon + 1) / 2;
    int   y      = (rect.Height() - cyIcon + 1) / 2;

    dc.DrawIcon(x, y, m_hIcon);
  } else {
    CPaintDC dc(this);
    COLORREF color = dc.GetBkColor();
    if(isHexChecked()) {
      printAscii(dc, 16);
    } else {
      printAscii(dc, 10);
    }
    __super::OnPaint();
  }
}
Esempio n. 3
0
static int dumpEeprom(int hex){
int res,i,j;
char buf[16];

	printf("     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f\n");

	for (i = 0; i < 128; i+=16) {
		printf("%02x: ", i);
		res = i2c_read(buf,16);
		for(j = 0; j < 16; j++) {
			fflush(stdout);
			if(hex)
				printf("%02x ",buf[j]);
			else
				printAscii(buf[j]);
		}
		printf("\n");
	}
}
void printData(
	const char *label,
	CFDataRef data,
	PrintDataType whichType,
	OidParser &parser)
{
	const unsigned char *buf = CFDataGetBytePtr(data);
	unsigned len = CFDataGetLength(data);
	
	printf("%s: ", label);
	switch(whichType) {
		case PD_Hex:
			printHex(buf, len, 16);
			break;
		case PD_ASCII:
			printAscii((const char *)buf, len, 50);
			break;
		case PD_OID:
			printOid(buf, len, parser);
	}
	putchar('\n');
}
Esempio n. 5
0
File: dump.c Progetto: jarn0x/Escape
int main(int argc,const char *argv[]) {
    FILE *in = stdin;
    uint base = 16;
    char format = OUT_FORMAT_HEX;
    int i,count = -1;
    const char **args;

    int res = ca_parse(argc,argv,CA_MAX1_FREE,"n=d f=c",&count,&format);
    if(res < 0) {
        printe("Invalid arguments: %s",ca_error(res));
        usage(argv[0]);
    }
    if(ca_hasHelp())
        usage(argv[0]);

    /* TODO perhaps cmdargs should provide a possibility to restrict the values of an option */
    /* like 'arg=[ohd]' */
    if(format != OUT_FORMAT_DEC && format != OUT_FORMAT_HEX &&
            format != OUT_FORMAT_OCT)
        usage(argv[0]);

    switch(format) {
    case OUT_FORMAT_DEC:
        base = 10;
        break;
    case OUT_FORMAT_HEX:
        base = 16;
        break;
    case OUT_FORMAT_OCT:
        base = 8;
        break;
    }

    args = ca_getFree();
    if(args[0]) {
        in = fopen(args[0],"r");
        if(!in)
            error("Unable to open '%s'",args[0]);
    }

    ulong shname;
    uchar *shmem;
    if(sharebuf(fileno(in),BUF_SIZE,(void**)&shmem,&shname,0) < 0) {
        if(shmem == NULL)
            error("Unable to mmap buffer");
    }

    i = 0;
    while(!ferror(stdout) && (count < 0 || count > 0)) {
        size_t x,c;
        c = count >= 0 ? MIN(count,BUF_SIZE) : BUF_SIZE;
        c = fread(shmem,sizeof(char),c,in);
        if(c == 0)
            break;

        for(x = 0; x < c; x++, i++) {
            if(i % base == 0) {
                if(i > 0)
                    printAscii(base,i);
                printf("%08x: ",i);
            }

            if(isprint(shmem[x]) && shmem[x] < 0x80 && !isspace(shmem[x]))
                ascii[i % base] = shmem[x];
            else
                ascii[i % base] = NPRINT_CHAR;
            switch(format) {
            case OUT_FORMAT_DEC:
                printf("%03d ",shmem[x]);
                break;
            case OUT_FORMAT_HEX:
                printf("%02x ",shmem[x]);
                break;
            case OUT_FORMAT_OCT:
                printf("%03o ",shmem[x]);
                break;
            }
        }

        if(count >= 0)
            count -= c;
    }
    if(ferror(in))
        error("Read failed");
    if(ferror(stdout))
        error("Write failed");

    printAscii(base,i);

    destroybuf(shmem,shname);
    if(args[0])
        fclose(in);
    return EXIT_SUCCESS;
}
Esempio n. 6
0
void printBootp(const struct bootp* bp, int verbosite)
{
   printf("**********BOOTP**********\n");
   printf("Operation : %d ",bp->bp_op);
   if(bp->bp_op == BOOTREQUEST)
   printf("(REQUEST)\n");
   if(bp->bp_op == BOOTREPLY)
         printf("(RESPONSE)\n");
   if(verbosite>3){
     printf("Hardware address type: %d\n",bp->bp_htype);
     printf("Hardware address length: %d\n",bp->bp_hlen);
     printf("Jump number : %d\n",bp->bp_hops);
     printf("Transaction ID: %u\n",ntohl(bp->bp_xid));
     printf("Boot time in sec : %d\n",ntohs(bp->bp_secs));
     }
     printf("Client IP: %s\n", inet_ntoa(bp->bp_ciaddr));
     printf("Your IP: %s\n", inet_ntoa(bp->bp_yiaddr));
     printf("Server IP: %s\n", inet_ntoa(bp->bp_siaddr));
     printf("Passerelle IP: %s\n", inet_ntoa(bp->bp_giaddr));
     int i;
     printf("MAC client address: %02x",bp->bp_chaddr[0]);
     for(i=1;i<bp->bp_hlen;i++)
         printf(":%02x",bp->bp_chaddr[i]);
     printf("\n");
     printf("Server name: %s\n", bp->bp_sname);
     if(verbosite>3)
         printf("Boot file: %s\n", bp->bp_file);
     if( bp->bp_vend[0] == 99 && bp->bp_vend[1] == 130 && bp->bp_vend[2] == 83 && bp->bp_vend[3] == 99 ){
         printf("MAGIC COOKIE DETECTED\n");
     printf("Options : ");
     i = 4;
     while(bp->bp_vend[i]!=0xFF){
         switch(bp->bp_vend[i]){
             case TAG_DHCP_MESSAGE:
             switch(bp->bp_vend[i+2]){
                 case DHCPDISCOVER:
                 printf("DHCP DISCOVER\n");
                 break;
                 case DHCPOFFER:
                 printf("DHCP OFFER\n");
                 break;
                 case DHCPDECLINE:
                 printf("DHCP DECLINE\n");
                 break;
                 case DHCPACK:
                 printf("DHCP ACK\n");
                 break;
                 case DHCPNAK:
                 printf("DHCP NACK\n");
                 break;
                 case DHCPRELEASE:
                 printf("DHCP RELEASE\n");
                 break;
                 default:
                 break;
             }
             break;
             case TAG_CLIENT_ID:
             printf("Hardware type : %d (%s)\n",bp->bp_vend[i+2],(bp->bp_vend[i+2] == 1) ? "Ethernet" : "Inconnu");
             int j =i+3;
             printf("Hardware ethernet address: %02x",bp->bp_vend[j]);
             for(j++;j<bp->bp_vend[i+1]+i+2;j++)
                printf(":%02x",bp->bp_vend[j]);
             printf("\n");
             break;
             case TAG_HOSTNAME:
             printf("Device name: ");
             printAscii((u_char *) &bp->bp_vend[i+2],bp->bp_vend[i+1]-1);
             break;
             case TAG_PARM_REQUEST:
             printf("Parameters:\n");
             j =i+3;
             for(;j<bp->bp_vend[i+1]+i+2;j++)
                 switch(bp->bp_vend[j]){
                     case TAG_GATEWAY:
                     printf("ROUTER ");
                     break;
                     case TAG_DOMAIN_SERVER:
                     printf("DNS ");
                     break;
                     case TAG_DOMAINNAME:
                     printf("DOMAIN_NAME ");
                     break;
                     case TAG_BROAD_ADDR:
                     printf("BROADCAST_ADDRESS ");
                     break;
                     case TAG_SUBNET_MASK:
                     printf("SUBNET_MASK ");
                     break;
                     case TAG_TIME_OFFSET:
                     printf("TIME_OFFSET ");
                     break;
                     case TAG_HOSTNAME:
                     printf("HOST_NAME ");
                     break;
                     case TAG_NETBIOS_NS:
                     printf("NETBIOS_OVER_TCP/IP_NAME_SERVER ");
                     break;
                     case TAG_NETBIOS_SCOPE:
                     printf("NETBIOS_OVER_TCP/IP_SCOPE ");
                     break;
                     case TAG_REQUESTED_IP:
                     printf("REQUESTED_IP_ADDRESS ");
                     break;
                     case TAG_IP_LEASE:
                     printf("LEASE_TIME ");
                     break;
                     case TAG_SERVER_ID:
                     printf("SERVER_ID ");
                     break;
                     case TAG_PARM_REQUEST:
                     printf("PARAMETER_REQUEST_LIST ");
                     break;
                     default:
                     printf("UNKNOWN ");
                     break;
                 }
                 printf("\n");
                 break;
                 case TAG_GATEWAY:
                 j =i+3;
                 printf("Router address: %d",bp->bp_vend[j]);
                 for(j++;j<bp->bp_vend[i+1]+i+3;j++)
                     printf(".%d",bp->bp_vend[j]);
                 printf("\n");
                 break;
                 case TAG_DOMAIN_SERVER:
                 j =i+3;
                 printf("DNS Server IP address: %d",bp->bp_vend[j]);
                 for(j++;j<bp->bp_vend[i+1]+i+3;j++)
                     printf(".%d",bp->bp_vend[j]);
                 printf("\n");
                 break;
                 case TAG_DOMAINNAME:
                 printf("Domain name: ");
                 printAscii((u_char *) &bp->bp_vend[i+2],bp->bp_vend[i+1]-1);
                 break;
                 case TAG_BROAD_ADDR:
                 j =i+3;
                 printf("Broadcast IP address: %d",bp->bp_vend[j]);
                 for(j++;j<bp->bp_vend[i+1]+i+3;j++)
                     printf(".%d",bp->bp_vend[j]);
                 printf("\n");
                 break;
                 case TAG_SUBNET_MASK:
                 j =i+3;
                 printf("Subnet mask: %d",bp->bp_vend[j]);
                 for(j++;j<bp->bp_vend[i+1]+i+3;j++)
                     printf(".%d",bp->bp_vend[j]);
                 printf("\n");
                 break;
                 case TAG_NETBIOS_NS:
                 j =i+3;
                 printf("Name server IP address: %d",bp->bp_vend[j]);
                 for(j++;j<bp->bp_vend[i+1]+i+3;j++)
                     printf(".%d",bp->bp_vend[j]);
                 printf("\n");
                 break;
                 case TAG_REQUESTED_IP:
                 j =i+3;
                 printf("Asked IP address: %d",bp->bp_vend[j]);
                 for(j++;j<bp->bp_vend[i+1]+i+3;j++)
                     printf(".%d",bp->bp_vend[j]);
                 printf("\n");
                 break;
                 case TAG_IP_LEASE:
                 printf("Lease time: %u s\n",bp->bp_vend[i+2]*256*256*256+bp->bp_vend[i+3]*256*256+bp->bp_vend[i+4]*256+bp->bp_vend[i+5]);
                 break;
                 case TAG_SERVER_ID:
                 j =i+3;
                 printf("Server IP address: %d",bp->bp_vend[j]);
                 for(j++;j<bp->bp_vend[i+1]+i+3;j++)
                     printf(".%d",bp->bp_vend[j]);
                 printf("\n");
                break;
                default:
                printf("Not an option: %d\n",bp->bp_vend[i]);
                break;
             }
              i+=2+bp->bp_vend[i+1];
         }
      }
        if(verbosite>2)
        printPacket((u_char *) bp, sizeof(struct bootp));
        printf("\n");

};
Esempio n. 7
0
void got_packet(u_char *args, const struct pcap_pkthdr *header, const u_char *packet)
{
  const struct ether_header *ethernet;
  const struct ip *ip;
  const struct tcphdr *tcp;
  const struct udphdr *udp;
  struct arphdr *arp;
  u_char* trame;
  int size_ethernet = sizeof(struct ether_header);
  int size_ip;
  int size_tcp;
  int size_trame;
  int *vFlag = (int *) args;

  ethernet = (struct ether_header*)(packet);
  ip = (struct ip*)(packet+size_ethernet);
  size_ip=IP_HL(ip)*4;
  tcp = (struct tcphdr*)(packet+size_ip+size_ethernet);
  size_tcp=sizeof(struct tcphdr);
  udp = (struct udphdr*)(packet + sizeof(struct ether_header) + ip->ip_len*4);
  arp = (struct arphdr*)(packet+14);

  printf("Caught packet with length of [%d]\n", header->len);
  printEther(ethernet,*vFlag);
    switch(ntohs(ethernet->ether_type)){
    case ETHERTYPE_IP:
    case ETHERTYPE_IPV6:
      printIP(ip, *vFlag);
      switch(ip->ip_p)
      {
        case IPPROTO_TCP:
          printTcp(tcp, *vFlag);
          break;
        case IPPROTO_UDP:
          printUdp(udp, *vFlag);
          if((ntohs(udp->source)==IPPORT_BOOTPS && ntohs(udp->dest)==IPPORT_BOOTPC) ||
                (ntohs(udp->dest)==IPPORT_BOOTPS && ntohs(udp->source)==IPPORT_BOOTPC)){
                printBootp((struct bootp*) (packet + sizeof(struct ether_header) + ip->ip_len*4+8),*vFlag);
          }
          else if(ntohs(udp->source)== 53 || ntohs(udp->dest)==53){
                 printDns((u_char *)packet + sizeof(struct ether_header) + size_ip+8,*vFlag,1);
                }
          break;
        case IPPROTO_ICMP:
          printf("ICMP");
          break;
        case IPPROTO_SCTP:
          printf("SCTP");
          break;
        default:
          printf("Unknown Protocol\n");
        break;
      }
      break;
      case ETHERTYPE_ARP:
        printArp(arp, *vFlag);
        break;
      default:
        printf("EtherType not handled\n");
  }

  trame = (u_char *)(packet + size_ethernet + size_ip + size_tcp);
  size_trame = ntohs(ip->ip_len) - (size_ip + size_tcp);
  if (size_trame > 0)
  {
    printf("DATA (%d bytes):\n", size_trame);
    printAscii(trame, size_trame);
  }
  printf("\n");
  printf("\n");
  printf("\n");
  return;
}