c28749e97052f09388969427adf7df641cdcdc22kais/*
c28749e97052f09388969427adf7df641cdcdc22kais * CDDL HEADER START
c28749e97052f09388969427adf7df641cdcdc22kais *
c28749e97052f09388969427adf7df641cdcdc22kais * The contents of this file are subject to the terms of the
2ec7cc7fc084163eaed884efee9bbd322cc8951bKrishna Yenduri * Common Development and Distribution License (the "License").
2ec7cc7fc084163eaed884efee9bbd322cc8951bKrishna Yenduri * You may not use this file except in compliance with the License.
c28749e97052f09388969427adf7df641cdcdc22kais *
c28749e97052f09388969427adf7df641cdcdc22kais * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
c28749e97052f09388969427adf7df641cdcdc22kais * or http://www.opensolaris.org/os/licensing.
c28749e97052f09388969427adf7df641cdcdc22kais * See the License for the specific language governing permissions
c28749e97052f09388969427adf7df641cdcdc22kais * and limitations under the License.
c28749e97052f09388969427adf7df641cdcdc22kais *
c28749e97052f09388969427adf7df641cdcdc22kais * When distributing Covered Code, include this CDDL HEADER in each
c28749e97052f09388969427adf7df641cdcdc22kais * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
c28749e97052f09388969427adf7df641cdcdc22kais * If applicable, add the following below this CDDL HEADER, with the
c28749e97052f09388969427adf7df641cdcdc22kais * fields enclosed by brackets "[]" replaced with your own identifying
c28749e97052f09388969427adf7df641cdcdc22kais * information: Portions Copyright [yyyy] [name of copyright owner]
c28749e97052f09388969427adf7df641cdcdc22kais *
c28749e97052f09388969427adf7df641cdcdc22kais * CDDL HEADER END
c28749e97052f09388969427adf7df641cdcdc22kais */
c28749e97052f09388969427adf7df641cdcdc22kais/*
2ec7cc7fc084163eaed884efee9bbd322cc8951bKrishna Yenduri * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
c28749e97052f09388969427adf7df641cdcdc22kais * Use is subject to license terms.
c28749e97052f09388969427adf7df641cdcdc22kais */
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais#include <netinet/in.h> /* struct sockaddr_in */
c28749e97052f09388969427adf7df641cdcdc22kais#include <stdio.h>
c28749e97052f09388969427adf7df641cdcdc22kais#include <stdlib.h>
c28749e97052f09388969427adf7df641cdcdc22kais#include <sys/types.h>
c28749e97052f09388969427adf7df641cdcdc22kais#include <sys/socket.h>
c28749e97052f09388969427adf7df641cdcdc22kais#include <libscf.h>
c28749e97052f09388969427adf7df641cdcdc22kais#include <inet/kssl/kssl.h>
c28749e97052f09388969427adf7df641cdcdc22kais#include "kssladm.h"
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisvoid
c28749e97052f09388969427adf7df641cdcdc22kaisusage_delete(boolean_t do_print)
c28749e97052f09388969427adf7df641cdcdc22kais{
c28749e97052f09388969427adf7df641cdcdc22kais if (do_print)
c28749e97052f09388969427adf7df641cdcdc22kais (void) fprintf(stderr, "Usage:\n");
c28749e97052f09388969427adf7df641cdcdc22kais (void) fprintf(stderr,
c28749e97052f09388969427adf7df641cdcdc22kais "kssladm delete [-v] [<server_address>] <server_port>\n");
c28749e97052f09388969427adf7df641cdcdc22kais}
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisint
c28749e97052f09388969427adf7df641cdcdc22kaisdo_delete(int argc, char *argv[])
c28749e97052f09388969427adf7df641cdcdc22kais{
2ec7cc7fc084163eaed884efee9bbd322cc8951bKrishna Yenduri struct sockaddr_in6 server_addr;
c28749e97052f09388969427adf7df641cdcdc22kais char c;
c28749e97052f09388969427adf7df641cdcdc22kais char *port, *addr;
c28749e97052f09388969427adf7df641cdcdc22kais int pcnt;
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais if (argc < 3) {
c28749e97052f09388969427adf7df641cdcdc22kais goto err;
c28749e97052f09388969427adf7df641cdcdc22kais }
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais argc -= 1;
c28749e97052f09388969427adf7df641cdcdc22kais argv += 1;
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais while ((c = getopt(argc, argv, "v")) != -1) {
c28749e97052f09388969427adf7df641cdcdc22kais switch (c) {
c28749e97052f09388969427adf7df641cdcdc22kais case 'v':
c28749e97052f09388969427adf7df641cdcdc22kais verbose = B_TRUE;
c28749e97052f09388969427adf7df641cdcdc22kais break;
c28749e97052f09388969427adf7df641cdcdc22kais default:
c28749e97052f09388969427adf7df641cdcdc22kais goto err;
c28749e97052f09388969427adf7df641cdcdc22kais }
c28749e97052f09388969427adf7df641cdcdc22kais }
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais pcnt = argc - optind;
c28749e97052f09388969427adf7df641cdcdc22kais if (pcnt == 1) {
c28749e97052f09388969427adf7df641cdcdc22kais port = argv[optind];
c28749e97052f09388969427adf7df641cdcdc22kais addr = NULL;
c28749e97052f09388969427adf7df641cdcdc22kais } else if (pcnt == 2) {
c28749e97052f09388969427adf7df641cdcdc22kais addr = argv[optind];
c28749e97052f09388969427adf7df641cdcdc22kais port = argv[optind + 1];
c28749e97052f09388969427adf7df641cdcdc22kais }
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais if (parse_and_set_addr(addr, port, &server_addr) < 0) {
c28749e97052f09388969427adf7df641cdcdc22kais goto err;
c28749e97052f09388969427adf7df641cdcdc22kais }
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais if (kssl_send_command((char *)&server_addr, KSSL_DELETE_ENTRY) < 0) {
c28749e97052f09388969427adf7df641cdcdc22kais perror("Error deleting entry");
c28749e97052f09388969427adf7df641cdcdc22kais return (FAILURE);
c28749e97052f09388969427adf7df641cdcdc22kais }
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais if (verbose)
c28749e97052f09388969427adf7df641cdcdc22kais (void) printf("Successfully loaded cert and key\n");
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais return (SUCCESS);
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaiserr:
c28749e97052f09388969427adf7df641cdcdc22kais usage_delete(B_TRUE);
c28749e97052f09388969427adf7df641cdcdc22kais return (SMF_EXIT_ERR_CONFIG);
c28749e97052f09388969427adf7df641cdcdc22kais}