/** * 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. */ package org.apache.wss4j.common.derivedKey; import javax.xml.namespace.QName; import org.apache.wss4j.common.ext.WSSecurityException; /** * Class ConversationConstants */ public final class ConversationConstants { public static final int VERSION_05_02 = 1; public static final int VERSION_05_12 = 2; public static final int DEFAULT_VERSION = VERSION_05_12; /** * WS-SecConv Feb 2005 version */ public static final String WSC_NS_05_02 = "http://schemas.xmlsoap.org/ws/2005/02/sc"; /** * WS-Sx version */ public static final String WSC_NS_05_12 = "http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512"; /** * Token type of DerivedKeyToken */ public static final String TOKEN_TYPE_DERIVED_KEY_TOKEN = "/dk"; /** * Token type of SecurityContextToken */ public static final String TOKEN_TYPE_SECURITY_CONTEXT_TOKEN = "/sct"; /** * Field WSC_PREFIX */ public static final String WSC_PREFIX = "wsc"; /** * Field SECURITY_CONTEXT_TOKEN_LN */ public static final String SECURITY_CONTEXT_TOKEN_LN = "SecurityContextToken"; /** * Field IDENTIFIER_LN */ public static final String IDENTIFIER_LN = "Identifier"; /** * Field INSTANCE_LN */ public static final String INSTANCE_LN = "Instance"; /** * Field EXPIRES_LN */ public static final String EXPIRES_LN = "Expires"; /** * Field KEYS_LN */ public static final String KEYS_LN = "Keys"; /** * Field SECURITY_TOKEN_REFERENCE_LN */ public static final String SECURITY_TOKEN_REFERENCE_LN = "SecurityTokenReference"; /** * Field DERIVED_KEY_TOKEN_LN */ public static final String DERIVED_KEY_TOKEN_LN = "DerivedKeyToken"; /** * Field PROPERTIES_LN */ public static final String PROPERTIES_LN = "Properties"; /** * Field LENGTH_LN */ public static final String LENGTH_LN = "Length"; /** * Field GENERATION_LN */ public static final String GENERATION_LN = "Generation"; /** * Field OFFSET_LN */ public static final String OFFSET_LN = "Offset"; /** * Field LABEL_LN */ public static final String LABEL_LN = "Label"; /** * Field NONCE_LN */ public static final String NONCE_LN = "Nonce"; public static final int DIRECT_GENERATED = 1; public static final int STS_GENERATED = 2; public static final int STSREQUEST_TOKEN = 3; public static final int INTEROP_SCENE1 = 4; public static final String IDENTIFIER = "SCT_Identifier"; public static final int DK_SIGN = 1; public static final int DK_ENCRYPT = 2; public static final String DEFAULT_LABEL = "WS-SecureConversation"; public static final QName SECURITY_CTX_TOKEN_QNAME_05_02 = new QName( ConversationConstants.WSC_NS_05_02, ConversationConstants.SECURITY_CONTEXT_TOKEN_LN ); public static final QName SECURITY_CTX_TOKEN_QNAME_05_12 = new QName( ConversationConstants.WSC_NS_05_12, ConversationConstants.SECURITY_CONTEXT_TOKEN_LN ); public static final QName DERIVED_KEY_TOKEN_QNAME_05_02 = new QName( ConversationConstants.WSC_NS_05_02, ConversationConstants.DERIVED_KEY_TOKEN_LN ); public static final QName DERIVED_KEY_TOKEN_QNAME_05_12 = new QName( ConversationConstants.WSC_NS_05_12, ConversationConstants.DERIVED_KEY_TOKEN_LN ); /** * Key to hold the map of security context identifiers against the * service epr addresses (service scope) or wsa:Action values (operation * scope). */ public static final String KEY_CONTEXT_MAP = "contextMap"; private ConversationConstants() { // Complete } public interface DerivationAlgorithm { String P_SHA_1 = "http://schemas.xmlsoap.org/ws/2005/02/sc/dk/p_sha1"; String P_SHA_1_2005_12 = "http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512/dk/p_sha1"; byte[] createKey(byte[] secret, byte[] seed, int offset, long length) throws WSSecurityException; } public static String getWSCNs(int version) { if (VERSION_05_02 == version) { return WSC_NS_05_02; } else { return WSC_NS_05_12; } } public static int getWSTVersion(String ns) { if (WSC_NS_05_02.equals(ns)) { return VERSION_05_02; } else { return VERSION_05_12; } } }