diff options
Diffstat (limited to 'lib/radius/examples')
-rw-r--r-- | lib/radius/examples/Makefile | 54 | ||||
-rw-r--r-- | lib/radius/examples/example_1.c | 86 | ||||
-rw-r--r-- | lib/radius/examples/example_2.c | 86 | ||||
-rw-r--r-- | lib/radius/examples/example_3.c | 123 | ||||
-rw-r--r-- | lib/radius/examples/example_4.c | 94 | ||||
-rw-r--r-- | lib/radius/examples/nr_vp_create.c | 61 |
6 files changed, 0 insertions, 504 deletions
diff --git a/lib/radius/examples/Makefile b/lib/radius/examples/Makefile deleted file mode 100644 index f39c343..0000000 --- a/lib/radius/examples/Makefile +++ /dev/null @@ -1,54 +0,0 @@ -# -# GNU Makefile -# -.PHONY: all clean install - -SRCS = example_1.c example_2.c example_3.c example_4.c - -OBJS := ${SRCS:.c=.o} -PROGRAMS := ${SRCS:.c=} - -all: ${PROGRAMS} - -HEADERS := ../client.h ../radius.h - -${OBJS}: ${HEADERS} - -$(info ${PROGRAMS} ${OBJS}) - -${PROGRAMS}: ../libnetworkradius-client.a - - -%.o : %.c - $(CC) $(CFLAGS) -I.. -I. -c $< - -%.o: ${HEADERS} - -LDFLAGS = -L.. -lnetworkradius-client -lcrypto -lssl -CFLAGS = -I.. - -../libnetworkradius-client.a: - @${MAKE} -C .. libnetworkradius-client.a - -radsample.o: radsample.c ${HEADERS} nr_vp_create.c nr_packet_send.c - -#radsample: radsample.o ../libnetworkradius-client.a -# ${CC} ${LFDLAGS} ${LIBS} -o $@ $^ - -sample_chap.o: sample_chap.c ${HEADERS} - -sample_chap: sample_chap.o ../libnetworkradius-client.a - ${CC} ${LFDLAGS} ${LIBS} -o $@ $^ - -radsample2.o: radsample2.c ${HEADERS} nr_vp_create.c - -radsample2: radsample2.o ../libnetworkradius-client.a - ${CC} ${LFDLAGS} ${LIBS} -o $@ $^ - -radsample3.o: radsample3.c ${HEADERS} nr_transmit.c nr_server_t.c nr_vp_create.c - -radsample3: radsample3.o ../libnetworkradius-client.a - ${CC} ${LFDLAGS} ${LIBS} -o $@ $^ - -clean: - @rm -rf *.o *.a *~ diff --git a/lib/radius/examples/example_1.c b/lib/radius/examples/example_1.c deleted file mode 100644 index 265c880..0000000 --- a/lib/radius/examples/example_1.c +++ /dev/null @@ -1,86 +0,0 @@ -/* -Copyright (c) 2011, Network RADIUS SARL -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the <organization> nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include <networkradius-devel/client.h> - -/** \file example_1.c - * \brief Sample code to initialize a RADIUS packet. - * - * This example initializes a packet, and then adds User-Name and - * User-Password to it. The resulting packet is then printed to the - * standard output. - */ - -static const char *secret = "testing123"; -static uint8_t request_buffer[RS_MAX_PACKET_LEN]; -static uint8_t response_buffer[RS_MAX_PACKET_LEN]; -static RADIUS_PACKET request, response; - -int main(int argc, const char *argv[]) -{ - ssize_t rcode; - const char *user = "bob"; - const char *password = "password"; - - rcode = nr_packet_init(&request, NULL, secret, PW_ACCESS_REQUEST, - request_buffer, sizeof(request_buffer)); - if (rcode < 0) { - error: - fprintf(stderr, "Error: %s\n", nr_strerror(rcode)); - return 1; - } - - if (argc > 1) user = argv[1]; - if (argc > 2) password = argv[2]; - - rcode = nr_packet_attr_append(&request, NULL, - RS_DA_USER_NAME, - user, 0); - if (rcode < 0) goto error; - - rcode = nr_packet_attr_append(&request, NULL, - RS_DA_USER_PASSWORD, - password, 0); - if (rcode < 0) goto error; - - /* - * ALWAYS call nr_packet_sign() before sending the packet - * to anyone else! - */ - rcode = nr_packet_sign(&request, NULL); - if (rcode < 0) goto error; - - nr_packet_print_hex(&request); - - rcode = nr_packet_decode(&request, NULL); - if (rcode < 0) goto error; - - nr_vp_fprintf_list(stdout, request.vps); - nr_vp_free(&request.vps); - - return 0; -} diff --git a/lib/radius/examples/example_2.c b/lib/radius/examples/example_2.c deleted file mode 100644 index 0a58523..0000000 --- a/lib/radius/examples/example_2.c +++ /dev/null @@ -1,86 +0,0 @@ -/* -Copyright (c) 2011, Network RADIUS SARL -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the <organization> nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include <networkradius-devel/client.h> - -/** \file example_2.c - * \brief Sample code to initialize a RADIUS packet. - * - * This example initializes a packet, and then adds User-Name and - * CHAP-Password to it. The resulting packet is then printed to the - * standard output. - */ - -static const char *secret = "testing123"; -static uint8_t request_buffer[RS_MAX_PACKET_LEN]; -static uint8_t response_buffer[RS_MAX_PACKET_LEN]; -static RADIUS_PACKET request, response; - -int main(int argc, const char *argv[]) -{ - int rcode; - const char *user = "bob"; - const char *password = "password"; - - rcode = nr_packet_init(&request, NULL, secret, PW_ACCESS_REQUEST, - request_buffer, sizeof(request_buffer)); - if (rcode < 0) { - error: - fprintf(stderr, "Error: %s\n", nr_strerror(rcode)); - return 1; - } - - if (argc > 1) user = argv[1]; - if (argc > 2) password = argv[2]; - - rcode = nr_packet_attr_append(&request, NULL, - RS_DA_USER_NAME, - user, 0); - if (rcode < 0) goto error; - - rcode = nr_packet_attr_append(&request, NULL, - RS_DA_CHAP_PASSWORD, - password, strlen(password)); - if (rcode < 0) goto error; - - /* - * ALWAYS call nr_packet_sign() before sending the packet - * to anyone else! - */ - rcode = nr_packet_sign(&request, NULL); - if (rcode < 0) goto error; - - nr_packet_print_hex(&request); - - rcode = nr_packet_decode(&request, NULL); - if (rcode < 0) goto error; - - nr_vp_fprintf_list(stdout, request.vps); - nr_vp_free(&request.vps); - - return 0; -} diff --git a/lib/radius/examples/example_3.c b/lib/radius/examples/example_3.c deleted file mode 100644 index 33fc671..0000000 --- a/lib/radius/examples/example_3.c +++ /dev/null @@ -1,123 +0,0 @@ -/* -Copyright (c) 2011, Network RADIUS SARL -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the <organization> nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include <networkradius-devel/client.h> - -/** \file example_3.c - * \brief Sample code to initialize a RADIUS packet and a response to it. - * - * This example initializes a packet, and then adds User-Name and - * User-Password to it. The resulting packet is then printed to the - * standard output. - * - * As a next step, it then creates the response, and prints that, - * too. - */ - -static const char *secret = "testing123"; -static uint8_t request_buffer[RS_MAX_PACKET_LEN]; -static uint8_t response_buffer[RS_MAX_PACKET_LEN]; -static RADIUS_PACKET request, response; - -int main(int argc, const char *argv[]) -{ - int rcode; - const char *user = "bob"; - const char *password = "password"; - - rcode = nr_packet_init(&request, NULL, secret, PW_ACCESS_REQUEST, - request_buffer, sizeof(request_buffer)); - if (rcode < 0) { - error: - fprintf(stderr, "Error :%s\n", nr_strerror(rcode)); - return 1; - } - - if (argc > 1) user = argv[1]; - if (argc > 2) password = argv[2]; - - rcode = nr_packet_attr_append(&request, NULL, - RS_DA_USER_NAME, - user, 0); - if (rcode < 0) goto error; - - rcode = nr_packet_attr_append(&request, NULL, - RS_DA_USER_PASSWORD, - password, 0); - if (rcode < 0) goto error; - - /* - * ALWAYS call nr_packet_sign() before sending the packet - * to anyone else! - */ - rcode = nr_packet_sign(&request, NULL); - if (rcode < 0) goto error; - - nr_packet_print_hex(&request); - - rcode = nr_packet_init(&response, &request, secret, PW_ACCESS_ACCEPT, - response_buffer, sizeof(response_buffer)); - if (rcode < 0) goto error; - - rcode = nr_packet_attr_append(&response, &request, - RS_DA_REPLY_MESSAGE, - "Success!", 0); - if (rcode < 0) goto error; - - rcode = nr_packet_attr_append(&response, &request, - RS_DA_TUNNEL_PASSWORD, - password, 0); - if (rcode < 0) goto error; - rcode = nr_packet_sign(&response, &request); - if (rcode < 0) goto error; - - nr_packet_print_hex(&response); - - /* - * Check that the response is well-formed. The - * nr_packet_verify() function also calls nr_packet_ok(). - * However, it is sometimes useful to separate "malformed - * packet" errors from "packet is not a response to a - * reqeust" errors. - */ - rcode = nr_packet_ok(&response); - if (rcode < 0) goto error; - - /* - * Double-check the signature of the response. - */ - rcode = nr_packet_verify(&response, &request); - if (rcode < 0) goto error; - - rcode = nr_packet_decode(&response, &request); - if (rcode < 0) goto error; - - nr_vp_fprintf_list(stdout, response.vps); - nr_vp_free(&response.vps); - - return 0; -} diff --git a/lib/radius/examples/example_4.c b/lib/radius/examples/example_4.c deleted file mode 100644 index 2dadc89..0000000 --- a/lib/radius/examples/example_4.c +++ /dev/null @@ -1,94 +0,0 @@ -/* -Copyright (c) 2011, Network RADIUS SARL -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the <organization> nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include <networkradius-devel/client.h> - -/** \file example_4.c - * \brief Allocate and manage multiple packets. - */ - -static const char *secret = "testing123"; -static nr_server_t server; - -int main(int argc, const char *argv[]) -{ - int rcode; - const char *user = "bob"; - const char *password = "password"; - - rcode = nr_packet_init(&request, NULL, secret, PW_ACCESS_REQUEST, - request_buffer, sizeof(request_buffer)); - if (rcode < 0) { - error: - fprintf(stderr, "Error :%s\n", nr_strerror(rcode)); - return 1; - } - - if (argc > 1) user = argv[1]; - if (argc > 2) password = argv[2]; - - rcode = nr_packet_attr_append(&request, NULL, - RS_DA_USER_NAME, - user, 0); - if (rcode < 0) goto error; - - rcode = nr_packet_attr_append(&request, NULL, - RS_DA_USER_PASSWORD, - password, 0); - if (rcode < 0) goto error; - - /* - * ALWAYS call nr_packet_sign() before sending the packet - * to anyone else! - */ - rcode = nr_packet_sign(&request, NULL); - if (rcode < 0) goto error; - - nr_packet_print_hex(&request); - - rcode = nr_packet_init(&response, &request, secret, PW_ACCESS_ACCEPT, - response_buffer, sizeof(response_buffer)); - if (rcode < 0) goto error; - - rcode = nr_packet_attr_append(&response, &request, - RS_DA_REPLY_MESSAGE, - "Success!", 0); - if (rcode < 0) goto error; - - rcode = nr_packet_sign(&response, &request); - if (rcode < 0) goto error; - - nr_packet_print_hex(&response); - - /* - * Double-check the signature of the response. - */ - rcode = nr_packet_verify(&response, &request); - if (rcode < 0) goto error; - - return 0; -} diff --git a/lib/radius/examples/nr_vp_create.c b/lib/radius/examples/nr_vp_create.c deleted file mode 100644 index bd04f17..0000000 --- a/lib/radius/examples/nr_vp_create.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * The person or persons who have associated work with this document - * (the "Dedicator" or "Certifier") hereby either (a) certifies that, - * to the best of his knowledge, the work of authorship identified is - * in the public domain of the country from which the work is - * published, or (b) hereby dedicates whatever copyright the - * dedicators holds in the work of authorship identified below (the - * "Work") to the public domain. A certifier, moreover, dedicates any - * copyright interest he may have in the associated work, and for - * these purposes, is described as a "dedicator" below. - * - * A certifier has taken reasonable steps to verify the copyright - * status of this work. Certifier recognizes that his good faith - * efforts may not shield him from liability if in fact the work - * certified is not in the public domain. - * - * Dedicator makes this dedication for the benefit of the public at - * large and to the detriment of the Dedicator's heirs and - * successors. Dedicator intends this dedication to be an overt act of - * relinquishment in perpetuity of all present and future rights under - * copyright law, whether vested or contingent, in the Work. Dedicator - * understands that such relinquishment of all rights includes the - * relinquishment of all rights to enforce (by lawsuit or otherwise) - * those copyrights in the Work. - * - * Dedicator recognizes that, once placed in the public domain, the - * Work may be freely reproduced, distributed, transmitted, used, - * modified, built upon, or otherwise exploited by anyone for any - * purpose, commercial or non-commercial, and in any way, including by - * methods that have not yet been invented or conceived. - */ - -static VALUE_PAIR *example_nr_vp_create(void) -{ - VALUE_PAIR *vp; - VALUE_PAIR *head = NULL; - - /* - * Create the request contents. - */ - vp = nr_vp_create(PW_USER_NAME, 0, "bob", 4); - if (!vp) { - fprintf(stderr, "User-Name: %s\n", nr_strerror(0)); - exit(1); - } - nr_vps_append(&head, vp); - - /* - * The User-Password attribute is automatically encrypted - * when being placed in the packet. This version stays - * untouched, and should be "plain text". - */ - vp = nr_vp_create(PW_USER_PASSWORD, 0, "hello", 6); - if (!vp) { - fprintf(stderr, "User-Password: %s\n", nr_strerror(0)); - exit(1); - } - nr_vps_append(&head, vp); - - return head; -} |