Grants.Gov Applicant Hashing Standard
Grants.gov requires the Applicant organizations to hash each submission attachment in order to ensure proper delivery of the submission to the agency.
Note: As of June 16, 2018 with Release 16.2.1, the Submission Hash will no longer be validated for either submission header version (V1.0 and V2.0). There are no changes to the attachment hash processing.
This section describes the Grants.gov technical requirements for Applicant S2S submissions.
Secure Hash Algorithm-1 (SHA-1) Hashing
Grants.gov uses the SHA-1 for computing hash values. The resulting hash value shall be encoded using the Base64 data encoding specification (http://www.ietf.org/rfc/rfc3548.txt ). The resulting value will be populated in the global schema HashValue element.
As of June 16, 2018 with Release 16.2.1, Grants.gov no longer requires the Applicant organizations to hash the <grant:Forms> XML node for single-project submissions and the <mpgrant:ApplicationPackage> XML node for multi-project submissions along with each submission attachment. When creating the attachment XML, it is important to specify "SHA-1" in the Global Schema "glob:hashAlgorithm" attribute. If a value other than SHA-1 is received in the XML, Grants.gov will reject the application. The next sections describe the process in greater detail.
Preparing and Calculating Attachment Hash Values
This section clarifies the process of sending attachments to Grants.gov. The Attachments schema is required when adding attachments to a S2S grant application package. The schema containing the AttachedFileDataType can be accessed by the URL:
The schema contains a field named FileLocation. This element represents the Content-ID (CID) for the attachment, which is a unique value for identifying the associated attachment. The href attribute of the FileLocation element should be populated with the CID. The CID (the FileLocation href attribute value) in the schema should match the FileContentId element contained in the GrantsCommonElements:Attachment element. The GrantsCommonElements schema can be accessed by the URL:
The following restrictions apply to both single and multi-project submissions:
- CID values must be unique across the entire submission XML.
- The XPath to each attachment FileName element must be unique across the entire submission XML. The XPath for attachment names is calculated as follows:
- Single-project submission XPath starts at the <grant:Forms> child element and continuing to the attachment FileName value, ignoring the immediate parent of the FileName element.
- Multi-Project submission XPath starts with the overall/sub-application ID value, skipping the<grant:Forms> element and continuing to the attachment FileName value, ignoring the immediate parent of the FileName element.
Each attachment must be hashed and the value placed in the attachment HashValue XML element of the Submission XML.