It does support that:
asc@caprese:~$ echo "Hello World. How are you today?" >plain
asc@caprese:~$ pkcs11-tool --module /usr/local/lib/libsc-hsm-pkcs11.so -O --login --pin 648219 --id 05d18a56eff4070e --encrypt --mech AES-CBC --input-file plain --output-file cipher
Using slot 0 with a present token (0x1)
Secret Key Object; AES length 16
label: AES
ID: 05d18a56eff4070e
warning: PKCS11 function C_GetAttributeValue(VERIFY_RECOVER) failed: rv = CKR_ATTRIBUTE_TYPE_INVALID (0x12)
Usage: encrypt, decrypt
Access: sensitive, always sensitive, never extractable, local
uri: pkcs11:model=SmartCard-HSM;manufacturer=CardContact%20%28www.cardcontact.de%29;serial=;token=SmartCard-HSM;id=%05d18a56eff4070e;object=AES;type=secret-key
Using encrypt algorithm AES-CBC
asc@caprese:~$ hexdump cipher
0000000 8c77 a1cd 51fc 2b96 0384 71fe e3d2 8c3b
0000010 b8ec 319a df01 51e5 cd8f 48eb 2745 68b6
0000020
asc@caprese:~$ pkcs11-tool --module /usr/local/lib/libsc-hsm-pkcs11.so -O --login --pin 648219 --id 05d18a56eff4070e --decrypt --mech AES-CBC --input-file cipherUsing slot 0 with a present token (0x1)
Secret Key Object; AES length 16
label: AES
ID: 05d18a56eff4070e
warning: PKCS11 function C_GetAttributeValue(VERIFY_RECOVER) failed: rv = CKR_ATTRIBUTE_TYPE_INVALID (0x12)
Usage: encrypt, decrypt
Access: sensitive, always sensitive, never extractable, local
uri: pkcs11:model=SmartCard-HSM;manufacturer=CardContact%20%28www.cardcontact.de%29;serial=;token=SmartCard-HSM;id=%05d18a56eff4070e;object=AES;type=secret-key
Using decrypt algorithm AES-CBC
Hello World. How are you today?
The input length must be a multiple of 16, as the HSM does not support padding internally.