'Alternate constructor for GRRSignedBlob.
Creates a GRRSignedBlob from a content string by chunking it and signing
each chunk.
Args:
content: The data to stored in the GRRSignedBlob.
urn: The AFF4 URN to create.
chunk_size: Data will be chunked into this size (each chunk is
individually signed.
token: The ACL Token.
private_key: An rdf_crypto.RSAPrivateKey() instance.
public_key: An rdf_crypto.RSAPublicKey() instance.
Returns:
the URN of the new object written.'

@classmethod
def NewFromContent(cls, content, urn, chunk_size=1024, token=None, private_key=None, public_key=None):

    with aff4.FACTORY.Create(urn, cls, mode='w', token=token) as fd:
        for start_of_chunk in xrange(0, len(content), chunk_size):
            chunk = content[start_of_chunk:(start_of_chunk + chunk_size)]
            blob_rdf = rdf_crypto.SignedBlob()
            blob_rdf.Sign(chunk, private_key, public_key)
            fd.Add(blob_rdf)
    return urn
