src/ecc/aes.js
function encrypt(private_key, public_key, message, nonce = uniqueNonce()) {
    return crypt(private_key, public_key, nonce, message);
}
function encrypt(private_key, public_key, message, nonce = uniqueNonce()) {
    return crypt(private_key, public_key, nonce, message);
}
Spec: http://localhost:3002/steem/@dantheman/how-to-encrypt-a-memo-when-transferring-steem

@throws {Error|TypeError} - "Invalid Key, ..."

@arg {PrivateKey} private_key - required and used for decryption
@arg {PublicKey} public_key - required and used to calcualte the shared secret
@arg {string} [nonce = uniqueNonce()] - assigned a random unique uint64

@return {object}
@property {string} nonce - random or unique uint64, provides entropy when re-using the same private/public keys.
@property {Buffer} message - Plain text message
@property {number} checksum - shared secret checksum