Usando ruby para gerar hashes no estilo de criptografia SHA512 formatados para / etc / shadow?

Eu quero gerar senhas com hash SHA512 para inclusão diretamente em um arquivo / etc / shadow para uso comrecurso de usuário do chef. Normalmente eu iria para o stdlib'sDigest biblioteca para isso, mas não gera o hash no formato correto:

ruby-1.9.2-p136 :001 > require 'digest/sha2'
 => true 
ruby-1.9.2-p136 :002 > Digest::SHA512.hexdigest('test')
 => "ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff" 

O formato que o arquivo de sombra deseja é:

O módulo openssl "dgst" retorna o mesmo formato que .hexdigest e seu módulo "passwd" não inclui o suporte ao SHA512./ShPQNXV$HJnibH9lw01qtYqyJQiBf81ggJB2BGUvKA7.kv39HGCeE.gD4C/SS9zAf5BrwOv3VJzvl99FpHYli9E8jykRC0

Coisas que eu olhei:

O módulo openssl "dgst" retorna o mesmo formato que .hexdigest e seu módulo "passwd" não inclui o suporte ao SHA512.String # crypt, mas isso não suporta SHA512. (edit: esse é apenas o caso do OSX - as distribuições modernas do Linux funcionarão se você especificar "$ 6 $ somesalt" como o sal)cripta de rubi gem, mas não suporta SHA512

Para comparação, algo que retorna o formato adequado é o PHPcripta, mas prefiro não precisar executar o PHP para algo que deve ser simples.

questionAnswers(1)

yourAnswerToTheQuestion