It’s safe for the time being, but nowadays you probably want a key size of at least 4096 bit. In general the main issue is performance, so private keys are in practice usually used for signing a SHA256 digest of a message or similar for proof of authenticity. For confidentiality/encryption of data of arbitrary size you want AES or similar designed for speed.
You mentioned signing. The private key is meant for signing a message and the public key can verify that signature. The public key is meant for encrypting a message that only the owner of the corresponding private key is able to decrypt.
For a public-key license scheme you usually sign a license on your server, and then use the embedded public key in your software to verify that the signature of the license is correct. A hacker can replace the embedded key with his own to create a keygen. Tip: store the key in such a way that it’s not possible to do this easily. (You could use a curve fitting tool to convert parts of the key into a mathematical function only evaluated at runtime.)
I probably went way off-topic here, sorry about that!
Edit: On a second thought I realize you probably know most of this already, but I’ll leave it in case someone find it useful.