Hi, I'm trying to implement the STR transformation for Rampart. This transformation is required to sign SAML tokens. I encountered few problems with the current infrastructure provided by the oxs_transform.h and oxs_transformation_factory.h while implementing this.
In the STR transformation we give the SecurityTokeneReference node to the transformation function as input. Inside of this function we need to find the actual token referred by this SecurityTokenReference. We need to access the Security header to find the actual token. But we can pass only the SecurityTokenReference node to the transformation function according to the current implementation. But we need to pass the soap header node as well. So we need to pass two nodes as input. Opposite of this problem can be seen in the enveloped XML signature transformation. In the enveloped transformation the transformation function should return Signature node and the node containing the signature. So we need to return two nodes. My suggested solution is to add another oxs_tr_dtype_t OXS_TRANSFORM_TYPE_NODE_ARRAY_LIST. Then if it is required to pass or return more than one node we can use an array list containg the required nodes. The values contained in the array list will be different according to the transformation. Regards, Supun.