Meta: this is not really about cryptography, but use of a tool for data processing only partly related to crypto; but since no one voted to close (that I can see) I'll go ahead. This can be deleted if necessary.
Not exactly, but there is a command option to build arbitrary ASN.1 data, which can be adapted for this with a little work, if you have the desired private-value in 'plain' hex: on Unix (if it isn't already hex) you can convert with xxd -p -c32
or od -An -tx1 | tr -d ' \n'
or similar, on Windows you're on your own. Given a file with the following contents except substituting your desired private value:
asn1=SEQ:pkcs8c
[pkcs8c]
ver=INT:0
algid=SEQ:algid
data=OCTWRAP,SEQ:sec1
[algid]
alg=OID:id-ecPublicKey
parm=OID:prime256v1
[sec1]
ver=INT:1
privkey=FORMAT:HEX,OCT:0123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA9876543210
then
openssl asn1parse -genconf filename -noout [-out derfile]
will create the PKCS8-clear format in DER, and appending | openssl pkey -inform der
will convert it to PEM. Or on Unix you can convert to PEM 'manually' with ... | { printf '%s\n' '-----BEGIN PRIVATE KEY-----'; openssl base64; printf '%s\n' '-----END PRIVATE KEY-----'; }
Alternatively and more hackily, the DER encoding of the structure described above is all constant except for the private-value which occurs last, so you can simply concatenate the constant part with the private-value to get PKC8-clear DER, then convert to PEM as above:
# on Unix, given the 32 bytes in binary in file rawfile:
printf '\x30\x41\x02\x01\x00\x30\x13\x06\x07\x2a\x86\x48\xce\x3d\x02\x01\x06\x08\x2a\x86\x48\xce\x3d\x03\x01\x07\x04\x27\x30\x25\x02\x01\x01\x04\x20'; cat rawfile;
# creates DER, and putting that in { } or ( ) and piping the result to
# pkey -inform der or the manual alternative above converts to PEM