The key and signature were generated with OpenSSL.
It uses an RSA key with modulus length of 1024 bits, PSS padding,
SHA-256 as the digest, MGF1 with SHA-256, and salt length of 10.

The key was generated with:

$ openssl genrsa -out key.pem 2048
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAn56hwS55y9JG5gXkTQLXm/Q4HSJdP/kECgztMMQtqgiv+QdL
0J5M7bQNbUK7ZhZt5pES5T0HjJcIENBvhXFzUZ3rBOMp4yESFLWoSL0quL0DAaRX
/ZuZqT+Ow6LPdkwlv1JpKh03ylqxCGbw1bIFIEsFrp6QDndSPVI1ifd2QfYe+fdR
QuF8emaGu50OKRSgziQB50JHKD0zRsh1cgUcQTyGUiFj2ndFXw1APzylU2+ouYur
mN3ZCrvcP2J/qgQdAzDYRQ/bq/v7LNYQc+Gud+EIzE3+9spybnWRi2aLrnGwwBCZ
s/bqc66waK0pzH8z/mDwbB2ZSIal6ARF0iWUXQIDAQABAoIBAHKu+AsjiFDgSR5V
111ZkG41vud33EXtdXB/LyAdo62KRl0HV/qQ8jbLaeY5zwkfTmEdlNTtz3G8xgfG
qonXJILckpJVYLAW/7WvezSf7YUEEJfqa2oElRfcWYfIf4TAW1KmNHcUvRP/qzid
NaZkHHjCTlfTBy/NnWH/ogX5rZbfy1mqfBkGCsBAKrIp8OxIdc2gvy7fzjmOc9Bj
wSIswqGWu5YCeJ5S6tQ3PCYwb9A/gJS4/DMz2Mq0wj1r0dn9xVtMcQZRrG3JsvHt
Q4ImTXE3gTDS1gw8a0iB1UHlnOuq19O74ImupndpbpS2AZ3r8/GB2hGc+p3RXV+D
2MdlVEUCgYEA0h1yM5qJcAQQH5xFXK/eFF3DHeQNl10ugqiq8dF1+uFVodNhu/ZI
OGddhgxSrYDy7ryoZLGnZxcgrdxsfgfIHFOIp8sn9DO6wxfNQEBMGrWAXlgM+0js
EZ5FG/hHsZycM5/LXAncXmPDacu5AJ0UFv84iFahSsmaPR/FB3SdiO8CgYEAwno5
eywaSdo2AWu/QeCtfN+Db9CmStjhHJY5NidppoeLcKwO5Jlh1DqbYvE38+SmUCeq
nZoXmj2EBsHU8xHY7U8pS0JHW8Uj+Ii6KxzMx1cdyUXy9bCmVVj4wtfaQIHdYruj
T7eD31NZ/sQHplsVT7EdTprVFPys7GPgy321/3MCgYEAxS25BFBb9fD6KJAAT7ED
Gd27w4tGbeuWQCuE8JX+v8dDEzBJoZjHwZbPH4Lk+8ntMLl+1bAaRxZfJomajtNC
qcKCleSCxBrfg0IM7eTpBo+Zve+njxGp6Aa9GDhxH26274Nf1imy0imRMvFp1feS
6Nnt9ZRGnOaAhigQQKThSaUCgYBVS9Y6N7Wv/o0BQoi4FBsDUeUL/a9x1H2nVBvz
rIWiDIEUAeLmUH+f3bSZSMMJrZdkQIGMbjE77Q8jB5Cmq4VBUB8EayVxEp4cO5ur
nQ4TwBnIVW2iZMAPXt58Vr/a2xqGW1XdeNfV83DdVI0mYXyPX1dDSpV6hvgxFf1a
QuC4EQKBgQCtapB1LkCJ0ro6BDK1uxyMd4/uJWR2Ke6vZD1P+MgUDCbIwBCecick
WUzTx9Uc8ZfRH8s3JAMz6f8XpJoxvwFVpDqOB5X1y/8TNo5kEooQB1BnwLPL169O
Pqi9SE06v7syvuXBbFRQFOxmGvK7jYi0G1VGuc7OcjDw9SRGENtTKQ==
-----END RSA PRIVATE KEY-----

The public key in SPKI form:
$ openssl pkey -in key.pem -pubout
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn56hwS55y9JG5gXkTQLX
m/Q4HSJdP/kECgztMMQtqgiv+QdL0J5M7bQNbUK7ZhZt5pES5T0HjJcIENBvhXFz
UZ3rBOMp4yESFLWoSL0quL0DAaRX/ZuZqT+Ow6LPdkwlv1JpKh03ylqxCGbw1bIF
IEsFrp6QDndSPVI1ifd2QfYe+fdRQuF8emaGu50OKRSgziQB50JHKD0zRsh1cgUc
QTyGUiFj2ndFXw1APzylU2+ouYurmN3ZCrvcP2J/qgQdAzDYRQ/bq/v7LNYQc+Gu
d+EIzE3+9spybnWRi2aLrnGwwBCZs/bqc66waK0pzH8z/mDwbB2ZSIal6ARF0iWU
XQIDAQAB
-----END PUBLIC KEY-----

The signing algorithm:

$ openssl asn1parse -i < [ALGORITHM]
    0:d=0  hl=2 l=  65 cons: SEQUENCE          
    2:d=1  hl=2 l=   9 prim:  OBJECT            :rsassaPss
   13:d=1  hl=2 l=  52 cons:  SEQUENCE          
   15:d=2  hl=2 l=  15 cons:   cont [ 0 ]        
   17:d=3  hl=2 l=  13 cons:    SEQUENCE          
   19:d=4  hl=2 l=   9 prim:     OBJECT            :sha256
   30:d=4  hl=2 l=   0 prim:     NULL              
   32:d=2  hl=2 l=  28 cons:   cont [ 1 ]        
   34:d=3  hl=2 l=  26 cons:    SEQUENCE          
   36:d=4  hl=2 l=   9 prim:     OBJECT            :mgf1
   47:d=4  hl=2 l=  13 cons:     SEQUENCE          
   49:d=5  hl=2 l=   9 prim:      OBJECT            :sha256
   60:d=5  hl=2 l=   0 prim:      NULL              
   62:d=2  hl=2 l=   3 cons:   cont [ 2 ]        
   64:d=3  hl=2 l=   1 prim:    INTEGER           :20
-----BEGIN ALGORITHM-----
MEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUDBAIBBQChHDAaBgkqhkiG9w0BAQgw
DQYJYIZIAWUDBAIBBQCiAwIBIA==
-----END ALGORITHM-----

-----BEGIN DATA-----
x/UnD8pyX5vRn1GajXzKPMXAeQJAKfO65RD5sCFA/iOJCOT2wY8HqJxofIaEZpsfHbK6+SUaPIK
frMtJMIThbsnijViGgHSl1iIWZ91uUo0W/iyfPbTPr2xNzoyEOa84zqqqnOLsrnvI9KWlXjv5bf
nNV1xPnLMnlRuM3+QIcWg=
-----END DATA-----

The signature was generated with:
$ openssl dgst -sign key.pem -sha256 -sigopt rsa_padding_mode:pss \
    -sigopt rsa_pss_saltlen:32 < [DATA] > [SIGNATURE]

Then the signature was wrapped in a BIT STRING.

$ openssl asn1parse -i < [SIGNATURE]
    0:d=0  hl=4 l= 257 prim: BIT STRING   
-----BEGIN SIGNATURE-----
A4IBAQAhgPL8PV86dM9W4p1s7IWu8+9oXpPnFgutfKffNrPRny+7zUmJFER/JUDB
7gnb4qiDRqKftRIpizyrZb0M4Vrhq1CyINHM1anqinZESRy8npVvhrYv4QiHZnYX
vXtDjgBg3Rw2DufTOKgxs+nX8a050aHsuMulTRCwR6NuHkChJlJfg6p0b1losgcL
jKlu7EqTUUkY7Mt0WyCobxIKGbgrSVJsjV8La6rPh3LpA3d9i0Ik1HkyM1w+7utn
h2eT/FKO8W1BtB8haiyuhatuZ1c/2uttLBSZa8hK/2W4YuomUEoWz8JIP9xXQkoq
u0P2zB7MXW5jPJwpUX0fKXqFNSry
-----END SIGNATURE-----
