Now we generate private keys for certificates ourselves which is mostly not the desired behavior. We can always accept cert request object, signing cert pairs as function parameters and can have intermediate functions to generate the request if desired.
From:
GenSigningCert(subject pkix.Name, validFor time.Duration, keyLength int, signingCert, signingKey []byte)
To:
GenSigningCert(csr []byte, signingCert, signingKey []byte)