You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by bl...@apache.org on 2003/09/15 13:54:03 UTC

cvs commit: xml-security/c/src/xenc XENCEncryptionMethod.hpp XENCEncryptedType.hpp XENCCipherValue.hpp XENCCipher.hpp

blautenb    2003/09/15 04:54:03

  Modified:    c/src/xenc XENCEncryptionMethod.hpp XENCEncryptedType.hpp
                        XENCCipherValue.hpp XENCCipher.hpp
  Log:
  Integration of AlgorithmMapper and DSIG KeyInfo loading
  
  Revision  Changes    Path
  1.2       +27 -1     xml-security/c/src/xenc/XENCEncryptionMethod.hpp
  
  Index: XENCEncryptionMethod.hpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/xenc/XENCEncryptionMethod.hpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XENCEncryptionMethod.hpp	31 Aug 2003 12:47:19 -0000	1.1
  +++ XENCEncryptionMethod.hpp	15 Sep 2003 11:54:03 -0000	1.2
  @@ -94,7 +94,33 @@
   
   class XENCEncryptionMethod {
   
  +public:
   
  +	XENCEncryptionMethod() {};
  +
  +	virtual ~XENCEncryptionMethod() {};
  +
  +	/** @name Getter Methods */
  +	//@{
  +
  +	/**
  +	 * \brief Get the algorithm
  +	 *
  +	 * Return the Algorithm URI representing the encryption type for this
  +	 * encrypted data
  +	 *
  +	 * @returns the URI representing the algorithm
  +	 */
  +
  +	virtual const XMLCh * getAlgorithm(void) = 0;
  +
  +	//@}
  +
  +private:
  +
  +	// Unimplemented
  +	XENCEncryptionMethod(const XENCEncryptionMethod &);
  +	XENCEncryptionMethod & operator = (const XENCEncryptionMethod &);
   
   };
   
  
  
  
  1.4       +41 -4     xml-security/c/src/xenc/XENCEncryptedType.hpp
  
  Index: XENCEncryptedType.hpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/xenc/XENCEncryptedType.hpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XENCEncryptedType.hpp	11 Sep 2003 11:07:07 -0000	1.3
  +++ XENCEncryptedType.hpp	15 Sep 2003 11:54:03 -0000	1.4
  @@ -77,6 +77,8 @@
   #include <xsec/framework/XSECDefs.hpp>
   
   class XENCCipherData;
  +class DSIGKeyInfoList;
  +class XENCEncryptionMethod;
   
   /**
    * @ingroup xenc
  @@ -112,7 +114,7 @@
   
   	virtual ~XENCEncryptedType() {};
   
  -	/** @name Interface Methods */
  +	/** @name Basic Interface Methods */
   	//@{
   
   	/**
  @@ -127,6 +129,20 @@
   	virtual XENCCipherData * getCipherData(void) = 0;
   
   	/**
  +	 * \brief Retrieve the EncryptionMethod element
  +	 *
  +	 * The EncryptionMethod element holds information about the 
  +	 * encryption algorithm to be used to encrypt/decrypt the data
  +	 *
  +	 * This method provides a means to extract the EncryptionMethod
  +	 * element from the EncryptedType
  +	 *
  +	 * @returns The EncryptionMethod element
  +	 */
  +
  +	virtual XENCEncryptionMethod * getEncryptionMethod(void) = 0;
  +
  +	/**
   	 * \brief Retrieve the DOM Node that heads up the structure
   	 *
   	 * If this object has been fully created, this call will provide
  @@ -139,13 +155,34 @@
   
   	//@}
   
  +	/** @name KeyInfo Element Manipulation */
  +	
  +	//@{
  +
  +	/**
  +	 * \brief Get the list of \<KeyInfo\> elements.
  +	 *
  +	 * <p>This function recovers list that contains the KeyInfo elements
  +	 * read in from the DOM document.</p>
  +	 *
  +	 * <p>This list should be used by calling applications to determine what key
  +	 * is appropriate for decrypting the document.</p>
  +	 *
  +	 * @note The list should never be modified directly.  If you need to
  +	 * add keyInfo elements, call the appropriate functions in EncryptedType
  +	 *
  +	 * @returns A pointer to the DSIGKeyInfoList object held by the XENCCipher
  +	 */
  +	
  +	virtual DSIGKeyInfoList * getKeyInfoList(void) = 0;
  +
  +	//@}
  +
   private:
   
   	// Unimplemented
   	XENCEncryptedType(const XENCEncryptedType &);
   	XENCEncryptedType & operator = (const XENCEncryptedType &);
  -
  -
   
   };
   
  
  
  
  1.2       +18 -1     xml-security/c/src/xenc/XENCCipherValue.hpp
  
  Index: XENCCipherValue.hpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/xenc/XENCCipherValue.hpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XENCCipherValue.hpp	31 Aug 2003 12:47:19 -0000	1.1
  +++ XENCCipherValue.hpp	15 Sep 2003 11:54:03 -0000	1.2
  @@ -117,6 +117,23 @@
   
   	//@}
   
  +	/** @name Set Interface Methods */
  +	//@{
  +
  +	/**
  +	 * \brief Set the encrypted value
  +	 *
  +	 * Sets the base64 encoded string held in the CipherValue.
  +	 *
  +	 * @note This should not normally be called directly - use the XENCCipher
  +	 * interface for normal operation
  +	 *
  +	 * @param value The string to set
  +	 */
  +
  +	virtual void setCipherString(const XMLCh * value) = 0;
  +
  +	//@}
   private:
   
   	// Unimplemented
  
  
  
  1.4       +34 -4     xml-security/c/src/xenc/XENCCipher.hpp
  
  Index: XENCCipher.hpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/xenc/XENCCipher.hpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XENCCipher.hpp	11 Sep 2003 11:07:07 -0000	1.3
  +++ XENCCipher.hpp	15 Sep 2003 11:54:03 -0000	1.4
  @@ -73,6 +73,7 @@
   
   #include <xsec/framework/XSECDefs.hpp>
   #include <xsec/xenc/XENCCipherData.hpp>
  +#include <xsec/dsig/DSIGConstants.hpp>
   
   // Xerces
   
  @@ -81,6 +82,7 @@
   
   class XSECCryptoKey;
   class XENCEncryptedData;
  +class XSECKeyInfoResolver;
   
   /**
    * @defgroup xenc XML Encryption Implementation
  @@ -158,13 +160,22 @@
   	 * is replaced with an EncryptedData element
   	 *
   	 * @param element Element (and children) to encrypt
  +	 * @param em The encryptionMethod to use for this encryption.  Use
  +	 * ENCRYPT_NONE if a user defined type is required.
  +	 * @param algorithmURI If ENCRYPT_NONE is passed in, this will be
  +	 * used to set the algorithm URI.  If this is also NULL - no
  +	 * EncryptionMethod will be set.  <b>NULL Value Unsupported if em not
  +	 * set!  It's use could cause problems!</b>
  +	 *
   	 * @returns The owning document with the element replaced, or NULL
   	 * if the decryption fails for some reason (normally an exception).
   	 * @throws XSECException if the encryption fails.
   	 */
   
   	virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument * encryptElement(
  -		XERCES_CPP_NAMESPACE_QUALIFIER DOMElement * element
  +		XERCES_CPP_NAMESPACE_QUALIFIER DOMElement * element,
  +		encryptionMethod em,
  +		const XMLCh * algorithmURI = NULL
   	) = 0;
   
   	//@}
  @@ -211,6 +222,22 @@
   	virtual void setKey(XSECCryptoKey * key) = 0;
   
   	/**
  +	 * \brief Register a KeyInfoResolver 
  +	 *
  +	 * Registers a KeyInfoResolver to be used by the cipher when 
  +	 * it needs to find a key to be used to decrypt some ciper text
  +	 *
  +	 * @note The library will use the #clone() function from the resolver
  +	 * to get a copy.  The passed in resolver remains the property of
  +	 * the calling function
  +	 *
  +	 * @param resolver Resolver to clone and use for resolving keys
  +	 *
  +	 */
  +
  +	virtual void setKeyInfoResolver(const XSECKeyInfoResolver * resolver) = 0;
  +
  +	/**
   	 * \brief Set prefix for XENC nodes
   	 *
   	 * Set the namespace prefix the library will use when creating
  @@ -237,12 +264,15 @@
   	 * EncryptedData and delete any currently being held.
   	 *
   	 * @param type Should this set up a CipherReference or a CipherValue
  +	 * @param algorithm URI string to use for the Algorithm attribute in EncryptionMethod.
  +	 * Set to NULL for no defined algorithm.
   	 * @param value String to set the cipher data to if the type is VALUE_TYPE
   	 * @returns An XENCEncryptedData object
   	 */
   
  -	virtual XENCEncryptedData * createEncryptedData(XENCCipherData::XENCCipherDataType type, 
  -													XMLCh * value) = 0;
  +	virtual XENCEncryptedData * createEncryptedData(XENCCipherData::XENCCipherDataType type,
  +													const XMLCh * algorithm,
  +													const XMLCh * value) = 0;
   
   	//@}