Armazenar objetos PublicKey e PrivateKey no banco de dados postgres e no javascript

Olá estou desenvolvendo um sistema que criptografa uma mensagem e envia a msg e a chave publica para o cliente e armazena a chave privada no banco, mas me deparei com duas dúvidas

Com o cliente estou mantendo a msg e a chave publica na sessão, mas haverão momentos onde precisarei utilizar a chave. Vi um ex. na internet (abaixo) que pega um atributo da sessão em string e usa no javascript, mas a mensagem esta em byte[] e a chave publica é PublicKey, alguém sabe um modo de representar esses objetos em js?

<%String s=(String)request.getSession().getAttribute(?color?); %>

<script type=?text/javascript?>

var val=?<%=s %>?;
</script>

Outra dúvida é quanto a como armazenar a chave privada no banco, criei uma coluna na tabela do tipo bytea e tentei salvar usando um PreparedStatement passando o atributo com setObject (já que a classe PrivateKey é serializavel) mas não da certo, alguém sabe como fazer isso?

Supondo que você seja suficientemente ingênuo de salvar a chave privada no banco, sem criptografá-la antes (o que iria requerer um SealedObject, veja http://java.sun.com/javase/6/docs/api/javax/crypto/SealedObject.html ) basta você pegar a sua chave privada e serializá-la dentro de um ByteArrayOutputStream. A seguir, pegue os bytes do ByteArrayOutputStream, e então salve esses bytes como um BLOB.

“setObject” não serve para serializar objetos. Ele serve para você não precisar escolher entre “setString”, “setInt” ou outras APIs JDBC se você estiver com preguiça. Eu, em particular, evito usar setObject, porque essa escolha depende do determinado driver que você está usando e nem sempre esse driver faz a decisão correta.

entanglement você teria um exemplo para mostrar como após a serialização e fazer a inserção no banco como blob e depois a recuperar a chave no banco?