/*
- * Copyright 2001-2006 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*/
/**
- * @file EncryptedKeyResolver.h
+ * @file xmltooling/encryption/EncryptedKeyResolver.h
*
* Resolves encrypted keys based on EncryptedData information or other external factors.
*/
#define __xmltooling_enckeyres_h__
#include <xmltooling/encryption/Encryption.h>
-#include <xmltooling/signature/KeyResolver.h>
namespace xmlencryption {
/**
* An API for resolving encrypted decryption keys.
*/
- class XMLTOOL_API EncryptedKeyResolver : public xmlsignature::KeyResolver {
+ class XMLTOOL_API EncryptedKeyResolver {
+ MAKE_NONCOPYABLE(EncryptedKeyResolver);
public:
- virtual ~EncryptedKeyResolver() {}
+ EncryptedKeyResolver();
+ virtual ~EncryptedKeyResolver();
/**
- * Returns an encrypted key based on the supplied KeyInfo information.
+ * Returns an encrypted key based on the supplied object's KeyInfo information.
*
* @param encryptedData an encrypted object
+ * @param recipient identifier of recipient of encrypted key
* @return the resolved EncryptedKey object
*/
- virtual EncryptedKey* resolveKey(EncryptedData* encryptedData)=0;
+ virtual const EncryptedKey* resolveKey(const EncryptedData& encryptedData, const XMLCh* recipient=nullptr) const;
};
};