1/* 2 * Copyright (C) 2007 Michael Brown <mbrown@fensystems.co.uk>. 3 * 4 * This program is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU General Public License as 6 * published by the Free Software Foundation; either version 2 of the 7 * License, or any later version. 8 * 9 * This program is distributed in the hope that it will be useful, but 10 * WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with this program; if not, write to the Free Software 16 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17 */ 18 19FILE_LICENCE ( GPL2_OR_LATER ); 20 21/** 22 * @file 23 * 24 * Secure Hyper Text Transfer Protocol (HTTPS) 25 * 26 */ 27 28#include <stddef.h> 29#include <gpxe/open.h> 30#include <gpxe/tls.h> 31#include <gpxe/http.h> 32#include <gpxe/features.h> 33 34FEATURE ( FEATURE_PROTOCOL, "HTTPS", DHCP_EB_FEATURE_HTTPS, 1 ); 35 36/** 37 * Initiate an HTTPS connection 38 * 39 * @v xfer Data transfer interface 40 * @v uri Uniform Resource Identifier 41 * @ret rc Return status code 42 */ 43static int https_open ( struct xfer_interface *xfer, struct uri *uri ) { 44 return http_open_filter ( xfer, uri, HTTPS_PORT, add_tls ); 45} 46 47/** HTTPS URI opener */ 48struct uri_opener https_uri_opener __uri_opener = { 49 .scheme = "https", 50 .open = https_open, 51}; 52