# -------------------------------------------------------------------
# Copyright 2001-2004 The Apache Software Foundation.
#
# Licensed 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.
# -------------------------------------------------------------------


missingConfiguration = Missing or malformed configuration: \"{0}\"
expectedParameterMissing = Expected parameter missing : \"{0}\" 
missingScopeValue = Missing or incorrect scope value
canotFindContextIdentifier = Cannot find context identifier
missingWSAAction = wsa:Action value missing
missingWSATo = wsa:To address value missing
cannotCrateCryptoInstance = Cannot create Crypto instance
noInfoForCBhandler = Cannot obtain a callback handler with available configuration information 
cannotLoadPolicyValidatorCbClass = Cannot load custom policy validator callback class : \"{0}\"
cannotCreatePolicyValidatorCallbackInstance = Cannot create custom policy validator callback class instance : \"{0}\"
cannotLoadRampartConfigCallbackClass = Cannot load rampart config callback class : \"{0}\"
cannotCreateRampartConfigCallbackInstance = Cannot create rampart config callback class instance : \"{0}\"
missingEncryptionUser=Encryption user not specified (The context is created by the initiating party)
rampartConfigMissing = Rampart policy configuration missing

missingSignatureCrypto=Signature crypto information not available
missingEncryptionCrypto=Encryption crypto information not available
missingCallbackHandler=Password callback handler cannot be located
errorInObtainingSct=Error in obtaining SCT from \"{0}\"
errorInObtainingToken=Error in obtaining a token
errorInExtractingMsgProps = Error in extracting message properties
securityPolicyNamespaceCannotBeNull=Security policy namespace cannot be null
userMissing = No user value in the rampart configuration policy
cbHandlerMissing = Password CallbackHandler not specified in rampart configuration policy or the CallbackHandler instance not available in the MessageContext
errorInGettingPasswordForUser = Error in getting password for user : \"{0}\"
noPasswordForUser = No password supplied by the callback handler for the user : \"{0}\"
unsupportedSignedSupportingToken = Unsupported SignedSupportingToken : \"{0}\"
errorExtractingToken = Error extracting token : \"{0}\"
errorInAddingTokenIntoStore = Error in adding token into store
errorInDerivedKeyTokenSignature = Error in DerivedKeyToken signature
errorInSignatureWithX509Token = Error in signature with X509Token
errorInSignatureWithACustomToken = Error in signature with a custom token
errorInSignatureWithKerberosToken = Error in signature with KerberosToken
errorCreatingEncryptedKey = Error in creating an encrypted key
errorGettingSignatureValuesForSigconf = Error in getting signature values for signature confirmation
cannotLoadPWCBClass = Cannot load password callback class: {0}
cannotCreatePWCBInstance = Cannot create instance of password callback : {0}
pwcbFailed = password callback failed
unknownKeyRefSpeficier = Unknown key reference specifier for X509Token
errorInRetrievingTokenId = Error in retrieving token : {0}
errorInEncryption = Error in encryption
errorInDKEncr = Error in encryption with a derived key
errorCreatingRahasToken = Error in creating a org.apache.rahas.Token instance
UnsupportedTokenInSupportingToken = Unsupported token in supporting tokens
encryptionTokenMissing = Encryption token missing
signatureTokenMissing = Signature token missing
sctIssuerPolicyMissing = sct-issuer-policy parameter missing 
errorInTokenCancellation = Error in canceling token
tokenToBeCancelledInvalid = Token to be canceled is invalid or expired 
errorCreatingRSTTemplateForSCT=Error in creating RST template for SCT
noSecurityToken = Missing security token
noSecurityResults= No security processing results from the incoming message
missingEncryptedKeyInRequest=There was no EncryptedKey in the request message
rampartConigMissing = Please include configured RampartConfiguration assertion in policy
missingSecurityHeader = Missing wsse:Security header in request
missingSOAPHeader = SOAP header missing
clientAuthRequired= Service requires SSL mutual authentication

#Errors in processors
errorProcessingUT = Error in processing UsernameToken

cannotValidateTimestamp = The timestamp could not be validated
trustVerificationError = The certificate used for the signature is not trusted
cannotFindAliasForCert = Could not get alias for certificate with {0}
noCertForAlias = Could not get certificates for alias  {0}
noCertForSubject = Could not get certificates for subject  {0}
certPathVerificationFailed = Certificate path verification failed for certificate with subject
noCertificatesForIssuer = No certificates were found for issuer \"{0}\" and issuer serial number \"{1}\"

#Rampart Results Validation Errors
timestampMissing = Missing Timestamp
encryptedPartMissing = Missing encryption result for id : {0}
invalidNumberOfEncryptedParts = Invalid number of encrypted parts
protectionOrderMismatch = Protection order mismatch 
samlTokenMissing = SAML Token missing in request
binaryTokenMissing = Binary Security Token missing in request
usernameTokenMissing = UsernameToken missing in request
signatureMissing = Message is not signed
unexprectedEncryptedPart = Unexpected encrypted data found, no encryption required
encryptionMissing = Expected encrypted part missing
signedPartHeaderNotSigned = Soap Header must be signed : {0}
signedElementNotSigned = Element must be signed : {0}
bodyNotSigned = Soap Body must be signed 
unexprectedSignature = Unexpected signature
invalidTransport = Expected transport is "https" but incoming transport found : \"{0}\" 
requiredElementsMissing = Required Elements not found in the incoming message : {0}
repeatingNonceValue = Nonce value : {0}, already seen before for user name : {1}. Possibly this could be a replay attack.
invalidNonceLifeTime = Invalid value for nonceLifeTime in rampart configuration file.
invalidIssuerAddress = Invalid value for Issuer
invalidSignatureAlgo=Invalid signature algorithm for Asymmetric binding
invalidUsernameTokenType = Invalid UsernameToken Type.

#Rampart Kerberos-specific errors
invalidServicePrincipalNameForm = Invalid servicePrincipalNameForm found in Rampart configuration ({0}). The supported service principal name forms are: \"{1}\", \"{2}\".
noKerberosConfigDefined = No kerberosConfig policy assertion defined in rampart config.
errorInBuildingKereberosToken = Error in building kereberos token.
cannotLoadKrbTokenDecoderClass = Cannot load Kerberos token decoder class: {0}
cannotCreateKrbTokenDecoderInstance = Cannot create instance of Kerberos token decoder : {0}