Assinando XML com JAVA

Bom Dia. Estou desenvolvendo um sistema que irá se comunicar com o servidor do sefaz através de XML’s. Até aí tudo bem, porém algumas operações precisam que o XML seja assinado com o certificado e aí que começa minha dúvida. Não tenho muito conhecimento sobre isso e não sei como funciona essa tal assinatura. Já baixei algumas classes prontas na internet mas não resolveram e nunca encontrei nada esclarecedor nos forum. Se alguém tiver um material bom para compartilhar ou um método que faça essa assinatura, eu agradeceria.

Não sei se a receita disponibiliza um assinador em Java.
Entre em contato com eles: portal nfe