Sun.security.pkcs11.wrapper.PKCS11Exception: CKR_FUNCTION_NOT_SUPPORTED

Pessoal,

Alguém já se deparou com esse erro:
sun.security.pkcs11.wrapper.PKCS11Exception: CKR_FUNCTION_NOT_SUPPORTED

	public static void main(String[] args) throws Exception {
		// Create a DOM XMLSignatureFactory that will be used to
		// generate the enveloped signature.
		XMLSignatureFactory fac = XMLSignatureFactory.getInstance("DOM");

		// Create a Reference to the enveloped document (in this case,
		// you are signing the whole document, so a URI of "" signifies
		// that, and also specify the SHA1 digest algorithm and
		// the ENVELOPED Transform.
		Reference ref = fac.newReference
		 ("", fac.newDigestMethod(DigestMethod.SHA1, null),
		  Collections.singletonList
		   (fac.newTransform
		    (Transform.ENVELOPED, (TransformParameterSpec) null)),
		     null, null);

		// Create the SignedInfo.
		SignedInfo si = fac.newSignedInfo
		 (fac.newCanonicalizationMethod
		  (CanonicalizationMethod.INCLUSIVE,
		   (C14NMethodParameterSpec) null),
		    fac.newSignatureMethod(SignatureMethod.RSA_SHA1, null),
		     Collections.singletonList(ref));
		
		
		
		
		
		
		
		Provider p = new sun.security.pkcs11.SunPKCS11(TOKEN_CFG);
		System.out.println(Security.addProvider(p));
		
	       //char[] pin = { 's', 'a', 'f', 'e', 'w', 'e', 'b' };
	       char[] pin = PIN_NUMBER.toCharArray();
	       KeyStore ks = KeyStore.getInstance("PKCS11");  
	       ks.load(null, pin);  
	       KeyStore.PrivateKeyEntry pkEntry = null;  
	       Enumeration aliasesEnum = ks.aliases();  
	       PrivateKey privateKey = null;  
	       while (aliasesEnum.hasMoreElements()) {  
	           String alias = (String) aliasesEnum.nextElement();  
	           System.out.println(alias);  
	           if (ks.isKeyEntry(alias)) {  
	               pkEntry = (KeyStore.PrivateKeyEntry) ks.getEntry(alias, new KeyStore.PasswordProtection(PIN_NUMBER.toCharArray()));  
	               privateKey = pkEntry.getPrivateKey();  
	               break;  
	           }  
	       }  
		
		X509Certificate cert = (X509Certificate) pkEntry.getCertificate();

		// Create the KeyInfo containing the X509Data.
		KeyInfoFactory kif = fac.getKeyInfoFactory();
		List x509Content = new ArrayList();
		x509Content.add(cert.getSubjectX500Principal().getName());
		x509Content.add(cert);
		X509Data xd = kif.newX509Data(x509Content);
		KeyInfo ki = kif.newKeyInfo(Collections.singletonList(xd));
		
			
		
		
		
		
		
		// Instantiate the document to be signed.
		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
		dbf.setNamespaceAware(true);
		Document doc = dbf.newDocumentBuilder().parse   (new FileInputStream("purchaseOrder.xml"));

		// Create a DOMSignContext and specify the RSA PrivateKey and
		// location of the resulting XMLSignature's parent element.
		DOMSignContext dsc = new DOMSignContext  (pkEntry.getPrivateKey(), doc.getDocumentElement());

		// Create the XMLSignature, but don't sign it yet.
		XMLSignature signature = fac.newXMLSignature(si, ki);
		
		byte[] bytes = signature.getSignatureValue().getValue();
		// Marshal, generate, and sign the enveloped signature.
		signature.sign(dsc);
		
		
		
		
		
		
		// Output the resulting document.
		OutputStream os = new FileOutputStream("signedPurchaseOrder.xml");
		TransformerFactory tf = TransformerFactory.newInstance();
		Transformer trans = tf.newTransformer();
		trans.transform(new DOMSource(doc), new StreamResult(os));
		

		
		
		
	}

Estou utilizando um Token do tipo PKCS#11 e presico fazer a assinatura digital de um XML.

dae cara, to com o mesmo problema, fui testar um outro token em meu sistema e também está acontecendo isso! você achou solução???

to usando um ePass2000

o cfg dele ta assim:

name = FeitianPKCS#11
library = c:\windows\system32\ngp11v211.dll
slot = 1