Como você usa a biblioteca de criptografia em C para a criptografia DES? (setkey, criptografar, cripta, etc.)

Eu preciso fazer alguma criptografia DES simples em C para interagir com algum código antigo. Pelo que entendi você pode usar a biblioteca "crypt" para isso, com as funções setkey, criptografar, cripta, etc. Eu tenho mexido com isso e não consigo acertar. O exemplo na página man do setkey / encrypt está faltando.

Eu quero obter o mesmo resultado que eu seria capaz de obter com algum código java (veja abaixo).

Então, digamos que eu tenha dois arrays de caracteres em C.

char *message = "hellothe";
char *key = "iamakey0";

Alguém pode dar um exemplo de como criptografar estes com setkey / encrypt e obter o mesmo resultado que eu do código java? Eu percebo que você tem que colocar mensagem e chave em uma matriz de 64 bytes, onde cada caractere representa um pouco, mas alguns dos que é confuso também. Aparentemente, você tem que ter a paridade certa nisso também ou algo assim?

public static byte[] encryptDES(byte[] message, byte[] key) {
    byte[] encrypted = new byte[0];
    try{
        Cipher c = Cipher.getInstance("DES");
        c.init(Cipher.ENCRYPT_MODE,new SecretKeySpec(key,"DES"));
        encrypted = c.doFinal(message);
    }
    catch (Exception e) {
        e.printStackTrace();
    }
    return encrypted;
}

questionAnswers(2)

yourAnswerToTheQuestion