keyserv.c (90317) | keyserv.c (95658) |
---|---|
1/* 2 * Sun RPC is a product of Sun Microsystems, Inc. and is provided for 3 * unrestricted use provided that this legend is included on all tape 4 * media and as a part of the software program in whole or part. Users 5 * may copy or modify Sun RPC without charge, but are not authorized 6 * to license or distribute it to anyone else except as part of a product or 7 * program developed by the user. 8 * --- 18 unchanged lines hidden (view full) --- 27 * Mountain View, California 94043 28 */ 29 30#ifndef lint 31#if 0 32static char sccsid[] = "@(#)keyserv.c 1.15 94/04/25 SMI"; 33#endif 34static const char rcsid[] = | 1/* 2 * Sun RPC is a product of Sun Microsystems, Inc. and is provided for 3 * unrestricted use provided that this legend is included on all tape 4 * media and as a part of the software program in whole or part. Users 5 * may copy or modify Sun RPC without charge, but are not authorized 6 * to license or distribute it to anyone else except as part of a product or 7 * program developed by the user. 8 * --- 18 unchanged lines hidden (view full) --- 27 * Mountain View, California 94043 28 */ 29 30#ifndef lint 31#if 0 32static char sccsid[] = "@(#)keyserv.c 1.15 94/04/25 SMI"; 33#endif 34static const char rcsid[] = |
35 "$FreeBSD: head/usr.sbin/keyserv/keyserv.c 90317 2002-02-06 19:15:34Z alfred $"; | 35 "$FreeBSD: head/usr.sbin/keyserv/keyserv.c 95658 2002-04-28 15:18:50Z des $"; |
36#endif /* not lint */ 37 38/* 39 * Copyright (c) 1986 - 1991 by Sun Microsystems, Inc. 40 */ 41 42/* 43 * Keyserver --- 584 unchanged lines hidden (view full) --- 628 cryptkeyarg key_decrypt_2_arg; 629 netnamestr key_getcred_2_arg; 630 cryptkeyarg2 key_encrypt_pk_2_arg; 631 cryptkeyarg2 key_decrypt_pk_2_arg; 632 key_netstarg key_net_put_2_arg; 633 netobj key_get_conv_2_arg; 634 } argument; 635 char *result; | 36#endif /* not lint */ 37 38/* 39 * Copyright (c) 1986 - 1991 by Sun Microsystems, Inc. 40 */ 41 42/* 43 * Keyserver --- 584 unchanged lines hidden (view full) --- 628 cryptkeyarg key_decrypt_2_arg; 629 netnamestr key_getcred_2_arg; 630 cryptkeyarg2 key_encrypt_pk_2_arg; 631 cryptkeyarg2 key_decrypt_pk_2_arg; 632 key_netstarg key_net_put_2_arg; 633 netobj key_get_conv_2_arg; 634 } argument; 635 char *result; |
636 bool_t(*xdr_argument)(), (*xdr_result)(); | 636 xdrproc_t xdr_argument, xdr_result; |
637 char *(*local) (); 638 uid_t uid = -1; 639 int check_auth; 640 641 switch (rqstp->rq_proc) { 642 case NULLPROC: | 637 char *(*local) (); 638 uid_t uid = -1; 639 int check_auth; 640 641 switch (rqstp->rq_proc) { 642 case NULLPROC: |
643 svc_sendreply(transp, xdr_void, (char *)NULL); | 643 svc_sendreply(transp, (xdrproc_t)xdr_void, NULL); |
644 return; 645 646 case KEY_SET: | 644 return; 645 646 case KEY_SET: |
647 xdr_argument = xdr_keybuf; 648 xdr_result = xdr_int; | 647 xdr_argument = (xdrproc_t)xdr_keybuf; 648 xdr_result = (xdrproc_t)xdr_int; |
649 local = (char *(*)()) key_set_1_svc_prog; 650 check_auth = 1; 651 break; 652 653 case KEY_ENCRYPT: | 649 local = (char *(*)()) key_set_1_svc_prog; 650 check_auth = 1; 651 break; 652 653 case KEY_ENCRYPT: |
654 xdr_argument = xdr_cryptkeyarg; 655 xdr_result = xdr_cryptkeyres; | 654 xdr_argument = (xdrproc_t)xdr_cryptkeyarg; 655 xdr_result = (xdrproc_t)xdr_cryptkeyres; |
656 local = (char *(*)()) key_encrypt_1_svc_prog; 657 check_auth = 1; 658 break; 659 660 case KEY_DECRYPT: | 656 local = (char *(*)()) key_encrypt_1_svc_prog; 657 check_auth = 1; 658 break; 659 660 case KEY_DECRYPT: |
661 xdr_argument = xdr_cryptkeyarg; 662 xdr_result = xdr_cryptkeyres; | 661 xdr_argument = (xdrproc_t)xdr_cryptkeyarg; 662 xdr_result = (xdrproc_t)xdr_cryptkeyres; |
663 local = (char *(*)()) key_decrypt_1_svc_prog; 664 check_auth = 1; 665 break; 666 667 case KEY_GEN: | 663 local = (char *(*)()) key_decrypt_1_svc_prog; 664 check_auth = 1; 665 break; 666 667 case KEY_GEN: |
668 xdr_argument = xdr_void; 669 xdr_result = xdr_des_block; | 668 xdr_argument = (xdrproc_t)xdr_void; 669 xdr_result = (xdrproc_t)xdr_des_block; |
670 local = (char *(*)()) key_gen_1_svc_prog; 671 check_auth = 0; 672 break; 673 674 case KEY_GETCRED: | 670 local = (char *(*)()) key_gen_1_svc_prog; 671 check_auth = 0; 672 break; 673 674 case KEY_GETCRED: |
675 xdr_argument = xdr_netnamestr; 676 xdr_result = xdr_getcredres; | 675 xdr_argument = (xdrproc_t)xdr_netnamestr; 676 xdr_result = (xdrproc_t)xdr_getcredres; |
677 local = (char *(*)()) key_getcred_1_svc_prog; 678 check_auth = 0; 679 break; 680 681 case KEY_ENCRYPT_PK: | 677 local = (char *(*)()) key_getcred_1_svc_prog; 678 check_auth = 0; 679 break; 680 681 case KEY_ENCRYPT_PK: |
682 xdr_argument = xdr_cryptkeyarg2; 683 xdr_result = xdr_cryptkeyres; | 682 xdr_argument = (xdrproc_t)xdr_cryptkeyarg2; 683 xdr_result = (xdrproc_t)xdr_cryptkeyres; |
684 local = (char *(*)()) key_encrypt_pk_2_svc_prog; 685 check_auth = 1; 686 break; 687 688 case KEY_DECRYPT_PK: | 684 local = (char *(*)()) key_encrypt_pk_2_svc_prog; 685 check_auth = 1; 686 break; 687 688 case KEY_DECRYPT_PK: |
689 xdr_argument = xdr_cryptkeyarg2; 690 xdr_result = xdr_cryptkeyres; | 689 xdr_argument = (xdrproc_t)xdr_cryptkeyarg2; 690 xdr_result = (xdrproc_t)xdr_cryptkeyres; |
691 local = (char *(*)()) key_decrypt_pk_2_svc_prog; 692 check_auth = 1; 693 break; 694 695 696 case KEY_NET_PUT: | 691 local = (char *(*)()) key_decrypt_pk_2_svc_prog; 692 check_auth = 1; 693 break; 694 695 696 case KEY_NET_PUT: |
697 xdr_argument = xdr_key_netstarg; 698 xdr_result = xdr_keystatus; | 697 xdr_argument = (xdrproc_t)xdr_key_netstarg; 698 xdr_result = (xdrproc_t)xdr_keystatus; |
699 local = (char *(*)()) key_net_put_2_svc_prog; 700 check_auth = 1; 701 break; 702 703 case KEY_NET_GET: 704 xdr_argument = (xdrproc_t) xdr_void; | 699 local = (char *(*)()) key_net_put_2_svc_prog; 700 check_auth = 1; 701 break; 702 703 case KEY_NET_GET: 704 xdr_argument = (xdrproc_t) xdr_void; |
705 xdr_result = xdr_key_netstres; | 705 xdr_result = (xdrproc_t)xdr_key_netstres; |
706 local = (char *(*)()) key_net_get_2_svc_prog; 707 check_auth = 1; 708 break; 709 710 case KEY_GET_CONV: 711 xdr_argument = (xdrproc_t) xdr_keybuf; | 706 local = (char *(*)()) key_net_get_2_svc_prog; 707 check_auth = 1; 708 break; 709 710 case KEY_GET_CONV: 711 xdr_argument = (xdrproc_t) xdr_keybuf; |
712 xdr_result = xdr_cryptkeyres; | 712 xdr_result = (xdrproc_t)xdr_cryptkeyres; |
713 local = (char *(*)()) key_get_conv_2_svc_prog; 714 check_auth = 1; 715 break; 716 717 default: 718 svcerr_noproc(transp); 719 return; 720 } --- 12 unchanged lines hidden (view full) --- 733 "not unix authentication\n"); 734 } 735 svcerr_weakauth(transp); 736 return; 737 } 738 uid = ((struct authsys_parms *)rqstp->rq_clntcred)->aup_uid; 739 } 740 | 713 local = (char *(*)()) key_get_conv_2_svc_prog; 714 check_auth = 1; 715 break; 716 717 default: 718 svcerr_noproc(transp); 719 return; 720 } --- 12 unchanged lines hidden (view full) --- 733 "not unix authentication\n"); 734 } 735 svcerr_weakauth(transp); 736 return; 737 } 738 uid = ((struct authsys_parms *)rqstp->rq_clntcred)->aup_uid; 739 } 740 |
741 memset((char *) &argument, 0, sizeof (argument)); 742 if (!svc_getargs(transp, xdr_argument, (caddr_t)&argument)) { | 741 memset(&argument, 0, sizeof (argument)); 742 if (!svc_getargs(transp, xdr_argument, &argument)) { |
743 svcerr_decode(transp); 744 return; 745 } 746 result = (*local) (uid, &argument); | 743 svcerr_decode(transp); 744 return; 745 } 746 result = (*local) (uid, &argument); |
747 if (!svc_sendreply(transp, xdr_result, (char *) result)) { | 747 if (!svc_sendreply(transp, xdr_result, result)) { |
748 if (debugging) 749 (void) fprintf(stderr, "unable to reply\n"); 750 svcerr_systemerr(transp); 751 } | 748 if (debugging) 749 (void) fprintf(stderr, "unable to reply\n"); 750 svcerr_systemerr(transp); 751 } |
752 if (!svc_freeargs(transp, xdr_argument, (caddr_t)&argument)) { | 752 if (!svc_freeargs(transp, xdr_argument, &argument)) { |
753 if (debugging) 754 (void) fprintf(stderr, 755 "unable to free arguments\n"); 756 exit(1); 757 } 758 return; 759} 760 --- 52 unchanged lines hidden --- | 753 if (debugging) 754 (void) fprintf(stderr, 755 "unable to free arguments\n"); 756 exit(1); 757 } 758 return; 759} 760 --- 52 unchanged lines hidden --- |