package WSS4J;

import com.ibm.xml.dsig.util.Base64;

public class BinarySecurityTokenWithReference extends SignatureToken
{
    private static String tokenWSUId = "";
 
    public BinarySecurityTokenWithReference (
                String keyStoreFileName,
                String keyStorePassword,
                String keyName,
                String tokenWSUId,
                WSSMessage wssMessage
                ){

        super(keyStoreFileName, keyStorePassword, keyName, tokenWSUId, wssMessage );
        this.tokenWSUId = tokenWSUId;

    }

    public String getType()
    {
        return "BinarySecurityTokenWithReference";
    }

    public String getXMLString()
    {
         String certificateBase64BinaryString = "";
         try{
 
             byte[] certificateBytes = certificate.getEncoded();
             certificateBase64BinaryString = 
                                       new Base64().encode(certificateBytes);
 
         }catch( Exception e ) {
             System.out.println( "Exception in BinarySecurityReferenceToken's setSecret...." );
             e.printStackTrace();
         }

        return 
        "\n<wsse:BinarySecurityToken " +
           "\nxmlns:wsu=\"http://schemas.xmlsoap.org/ws/2002/07/utility\"" +
           "\nxmlns:wsse=\"http://schemas.xmlsoap.org/ws/2003/06/secext\"" + 
           "\nwsu:Id=\"" + tokenWSUId + "\"" +
           "\nValueType=\"wsse:X509v3\"" +
           "\nEncodingType=\"wsse:Base64Binary\">" +
               "\n" + certificateBase64BinaryString + 
        "\n</wsse:BinarySecurityToken>";

    }
}