diff options
| author | Clifford Jansen <cliffjansen@apache.org> | 2013-10-22 18:10:49 +0000 |
|---|---|---|
| committer | Clifford Jansen <cliffjansen@apache.org> | 2013-10-22 18:10:49 +0000 |
| commit | ced1f45f021aad78f7874e78f049a134b7e1e995 (patch) | |
| tree | a2905b78b93f5ad6cdad923341d2da1cb3a94c5a /cpp/src/qpid/sys/windows/util.cpp | |
| parent | 52c551660915f723a442745c1f7c7a8a5dceadbe (diff) | |
| download | qpid-python-ced1f45f021aad78f7874e78f049a134b7e1e995.tar.gz | |
QPID-3914: Windows C++ SSL client certificate authentication support
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1534714 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/sys/windows/util.cpp')
| -rw-r--r-- | cpp/src/qpid/sys/windows/util.cpp | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/cpp/src/qpid/sys/windows/util.cpp b/cpp/src/qpid/sys/windows/util.cpp new file mode 100644 index 0000000000..75aef26c35 --- /dev/null +++ b/cpp/src/qpid/sys/windows/util.cpp @@ -0,0 +1,70 @@ +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +#include "qpid/sys/windows/util.h" +#include "qpid/Exception.h" +#include "qpid/sys/SystemInfo.h" + +#include <iostream> +#include <fstream> + +namespace qpid { +namespace sys { +namespace ssl { + +static const std::string LOCALHOST("127.0.0.1"); + +std::string defaultCertName() +{ + Address address; + if (SystemInfo::getLocalHostname(address)) { + return address.host; + } else { + return LOCALHOST; + } +} + +SslOptions::SslOptions() : qpid::Options("SSL Settings"), + certName(defaultCertName()) +{ + addOptions() + ("ssl-cert-password-file", optValue(certPasswordFile, "PATH"), "File containing password to use for accessing certificates") + ("ssl-cert-store", optValue(certStore, "NAME"), "Windows certificate store containing the certificate") + ("ssl-cert-Filename", optValue(certFilename, "PATH"), "Path to PKCS#12 file containing the certificate") + ("ssl-cert-name", optValue(certName, "NAME"), "Friendly Name of the certificate to use"); +} + +SslOptions& SslOptions::operator=(const SslOptions& o) +{ + certStore = o.certStore; + certName = o.certName; + certPasswordFile = o.certPasswordFile; + certFilename = o.certFilename; + + return *this; +} + +SslOptions SslOptions::global; + +void initWinSsl(const SslOptions& options, bool) +{ + SslOptions::global = options; +} +}}} // namespace qpid::sys::ssl |
