2 * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.netconf.transport.tls;
12 import org.eclipse.jdt.annotation.NonNullByDefault;
13 import org.eclipse.jdt.annotation.Nullable;
14 import org.kohsuke.MetaInfServices;
15 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.tls.common.rev231228.HelloParams;
16 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.tls.common.rev231228.IetfTlsCommonData;
17 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.tls.common.rev231228.Tls12$F;
18 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.tls.common.rev231228.Tls12$I;
19 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.tls.common.rev231228.Tls13$F;
20 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.tls.common.rev231228.Tls13$I;
21 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.tls.common.rev231228.TlsVersionBase;
22 import org.opendaylight.yangtools.yang.binding.YangFeature;
23 import org.opendaylight.yangtools.yang.binding.YangFeatureProvider;
26 * Baseline features supported from {@code ietf-tls-common.yang}.
30 public final class IetfTlsCommonFeatureProvider implements YangFeatureProvider<IetfTlsCommonData> {
31 private static final Map<TlsVersionBase, String> TLS_VERSIONS =
32 Map.of(Tls12$I.VALUE, "TLSv1.2", Tls13$I.VALUE, "TLSv1.3");
35 public Class<IetfTlsCommonData> boundModule() {
36 return IetfTlsCommonData.class;
40 public Set<? extends YangFeature<?, IetfTlsCommonData>> supportedFeatures() {
41 // Note: do not advertize TLS versions not present in TLS_VERSIONS!
42 return Set.of(HelloParams.VALUE, Tls12$F.VALUE, Tls13$F.VALUE);
45 static @Nullable String algorithmNameOf(final TlsVersionBase version) {
46 return TLS_VERSIONS.get(version);