code: function(signer) {
        if('content' in msg) {
          throw new Error('PKCS#7 signing not yet implemented.');
        }
  
        if(typeof msg.content !== 'object') {
          // use Data ContentInfo
          msg.contentInfo = asn1.create(
            asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [
              // ContentType
              asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,
                asn1.oidToDer(forge.pki.oids.data).getBytes())
            ]);
  
          // add actual content, if present
          if('content' in msg) {
            msg.contentInfo.value.push(
              // [0] EXPLICIT content
              asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [
                asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,
                  msg.content)
              ]));
          }
        }
  
        // TODO: generate digest algorithm identifiers
  
        // TODO: generate signerInfos
      }
docs: Signs the content.
  
  @param signer the signer (or array of signers) to sign as, for each:
  key the private key to sign with.
  [md] the message digest to use, defaults to sha-1.