# -------------------------------------------------------------------
# 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.
# -------------------------------------------------------------------


InvalidRequest = The request was invalid or malformed, \"{0}\"
FailedAuthentication = Authentication failed
RequestFailed = The specified request failed
InvalidSecurityToken = Security token has been revoked
AuthenticationBadElements = Insufficient Digest Elements
BadRequest = The specified RequestSecurityToken is not understood
ExpiredData = The request data is out-of-date
InvalidTimeRange = The requested time range is invalid or unsupported
InvalidScope = The request scope is invalid or unsupported
RenewNeeded = A renewable security token has expired
UnableToRenew = The requested renewal failed


errorInObtainingToken = Error in obtaining token from : \"{0}\"
errorInValidatingToken = Error in validating token from : \"{0}\"  
incorrectConfiguration = The given configuration element is not a "token-dispatcher-configuration" element
missingClassName = Class attribute missing
cannotLoadClass = Error in loading and instantiating the class \"{0}\"
invalidTokenTypeDefinition = Invalid 'tokenType' definition in \"{0}\" : \"{1}\"
errorLoadingConfigFile = Error in loading configuration file : \"{0}\"
defaultIssuerMissing = The default issuer must be specified
tokenAlreadyExists = "The token \"{0}\" already exists in the store
noTokenToUpdate = Canot find token : \"{0}\" to update 
noToken = Canot find token : \"{0}\"
errorInBuildingTheEncryptedKey = Error in building a xenc:EncyptedKey , encrypted for \"{0}\" 
missingDispatcherConfiguration = Cannot find the token-dispatcher-configuration
missingConfiguration = Missing configuration: \"{0}\"
expectedParameterMissing = Expected parameter missing : \"{0}\" 
reqestedSecTokMissing = RequestedSecurityToken missing in the response
rptMissing = RequestedProofToken missing in the response
notSupported = Not supported: {0}
errorCreatingSymmKey = Error in creating the ephemeral key
badDispatcherConfigMultipleDefaultIssuers = Dispatcher configuration error : There should be only one default issuer
errorInBuildingTheEncryptedKeyForPrincipal = Error in building encrypted key for principal : \"{0}\"
trustedCertNotFoundForEPR = Trusted certificate not found for service address : \"{0}\"
invlidTTL = timeToLive (in milliseconds) must be a positive long value.
invalidKeysize = Invalid key size
unsupportedWSTVersion = Unsupported WS-Trust version
unsupportedKeyType = Unsupported KeyType
invalidAppliesToElem = Invalid AppliesTo element
errorSettingUpRequestorEntropy = Error setting up requester entropy
errorInProcessingSTR = Error in processing SecurityTokenReference : {0}
cannotObtainTokenIdentifier = Cannot obtain token identifier
lifeTimeProcessingError = Error in processing Lifetime : {0}
invalidRPT = Invalid RequestedProofToken
serviceEntropyMissing = Service entropy missing
keyDerivationError = Error in key derivation
errorInProcessingEncryptedKey = Error in processing encrypted key

stsClientCfgCtxNull = STSClient: ConfigurationContext client is null

#SCTIssuer specific error messages
sctIssuerCryptoPropertiesMissing = When the tokenType is not \"BinarySecret\" the cryptoProperties MUST be specified

#SAMLTokenIssuer specific error messages 
samlPropFileMissing = cryptoProperties missing in the SAMLTokenIssuer configuration
samlIssuerKeyPasswdMissing = issuerKeyPassword missing in SAMLTokenIssuer configuration
samlIssuerKeyAliasMissing = user value missing in the SAMLTokenIssuer configuration
samlConverstionError = Error in converting a SAML token to DOOM 
samlAssertionCreationError = Error in creating a SAMLToken using Opensaml library
aliasMissingForService = Certificate alias missing for service address : \"{0}\"

samlIssuerNameMissing = issuerName value missing in the SAMLTokenIssuer configuration
samlUnsupportedPrincipal = Unsupported principal : \"{0}\"

requiredElementNotFound = Required Element \"{0}\" not found!
cannotDetermineTokenId = Cannot determine token ID from request
tokenNotFound = Token with ID \"{0}\" cannot be found
configurationIsNull = Configuration is null
errorInCancelingToken = Error occurred while trying to cancel token

errorExtractingTokenId  = Error occurred while extracting token id from the Security Token Reference
lifeTimeElemMissing = Lifetime element is missing in the RSTR
unableToRetrieveCallbackHandler= Unable to retrieve callback handler
unidentifiedKeyType= Unidentified KeyType found : \"{0}\"

#SAMLUtils errors
builderNotFound = Unable to find OpenSAML builder for object : \"{0}\"
issuerCertificateNotFound = Unable to get issuer certificate for issuer alias : \"{0}\"
issuerPrivateKeyNotFound = Unable to get issuer certificate for issuer alias : \"{0}\"
errorMarshallingAssertion = Error while marshalling assertion
errorSigningAssertion = Error signing SAML Assertion. An error occurred while signing SAML Assertion with alias : \"{0}\"
sha1NotFound = Unable to find SHA-1 algorithm implementation
certificateEncodingError = Error encoding certificate

errorLoadingCryptoProperties = An error occurred while loading crypto properties
errorLoadingCryptoPropertiesFile = An error occurred while loading crypto properties from file : \"{0}\"

errorCallingSAMLCallback = An error occurred while calling SAML callback handler to get attributes.