25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * CDDL HEADER START
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * The contents of this file are subject to the terms of the
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * Common Development and Distribution License (the "License").
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * You may not use this file except in compliance with the License.
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * or http://www.opensolaris.org/os/licensing.
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * See the License for the specific language governing permissions
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * and limitations under the License.
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * When distributing Covered Code, include this CDDL HEADER in each
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * If applicable, add the following below this CDDL HEADER, with the
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * fields enclosed by brackets "[]" replaced with your own identifying
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * information: Portions Copyright [yyyy] [name of copyright owner]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * CDDL HEADER END
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis/* Forward declaration */
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * Annotate the radius_attr_t objects with authentication data.
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisset_radius_attrs(radius_packet_data_t *req,
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisiscsit_radius_chap_validate(char *target_chap_name,
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis chap_validation_status_type validation_status;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis uint8_t md5_digest[16]; /* MD5 digest length 16 */
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis /* The secret must not be empty (section 3, RFC 2865) */
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmn_err(CE_WARN, "empty RADIUS shared secret");
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis return (CHAP_VALIDATION_BAD_RADIUS_SECRET);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bzero(&req, sizeof (radius_packet_data_t));
return (CHAP_VALIDATION_RADIUS_ACCESS_ERROR);
&req) != 0) {
return (CHAP_VALIDATION_RADIUS_ACCESS_ERROR);
return (validation_status);
char *target_chap_name,
unsigned char *target_response,
(const char *)target_chap_name,