Does DGD have encryption/decryption support?

Yes. From the very start there was the crypt() kfun which does the traditional DES encryption commonly used for passwords.

More recently Dworkin added the following kfuns for encryption and encryption related work:

Dworkin wrote the following about this:

I'm going to start with providing basic DES encryption as a kfun. That should suffice to implement all the different DES modes (ECB, CBC, 3DES CBC, etc.) in LPC. I intend to wrap it in a general kfun, like this:

prepared_encrypt_key = encrypt("DES key", key);
encrypted = encrypt("DES", message, prepared_encrypt_key);

prepared_decrypt_key = decrypt("DES key", key);
message = decrypt("DES", encrypted, prepared_decrypt_key);
with
string encrypt(string cipher, string mesg_or_key, string keys...)
string decrypt(string cipher, string mesg_or_key, string keys...)
For unsupported ciphers, the kfuns would return nil. This way, it would be easy to make optional encryption packages that could be added or removed without breaking dumpfile compatibility. The kfuns could also be masked, for example in the implementation of 3DES CBC:
string encrypt(string cipher, string mesg, string keys...)
{
    switch (cipher) {
    case "3DES CBC key":
	return ::encrypt("DES key", mesg) +
	       ::decrypt("DES key", keys[0]) +
	       ::encrypt("DES key", keys[1]));

    case "3DES CBC":
	encrypted = "";
	keylen = strlen(keys[0]) / 3;
	while (strlen(mesg) >= 8) {
	    keys[1] = str = asn_xor(mesg[.. 7], keys[1]);
	    str = ::encrypt("DES", str, keys[0][.. keylen - 1]);
	    str = ::decrypt("DES", str, keys[0][keylen .. 2 * keylen - 1]);
	    str = ::encrypt("DES", str, keys[0][2 * keylen ..];
	    mesg = mesg[8 ..];
	    encrypted += str;
	}
	if (strlen(mesg) != 0) {
	    keys[1] = str = asn_xor(mesg, keys[1]);
	    str = ::encrypt("DES", str, keys[0][.. keylen - 1]);
	    str = ::decrypt("DES", str, keys[0][keylen .. 2 * keylen - 1]);
	    str = ::encrypt("DES", str, keys[0][2 * keylen ..];
	    keys[1] = str = asn_xor(str, keys[1]);
	    encrypted += str;
	}
	return encrypted;

    default:
	return ::encrypt(cipher, mesg, keys...);
    }
}