6.1 數據格式
6.1.1 印章數據結構
電子印章由印章信息、制章者證書、簽名算法標識、簽名值等部分組成,其數據結構如圖1所示:

圖1電子印章的數據結構示意圖
電子印章數據的ASN.1定義為:
SESeal::=SEQUENCE{
eSealInfo SES_SealInfo, ——印章信息
cert OCTET STRING, ——制章者證書
signAlgID OBJECT IDENTIFIER, ——簽名算法標識
signedValue BIT STRING ——簽名值
}
6.1.2 印章信息
6.1.2.1 數據結構
印章信息eSealInfo由印章頭、印章標識、印章屬性、電子印章圖像數據、自定義數據等部分組成,其數據結構結構如圖2所示:

圖2印章信息的數據結構示意圖
印章信息eSealInfo的ASN.1定義如下:
SES_SealInfo::=SEQUENCE{
header SES_Header, ——印章頭
esID IA5String, ——印章標識
property SES_ESPropertyInfo, ——印章屬性
picture SES_ESPictrueInfo, ——印章圖像數據
extDatas ExtensionDatas OPTIONAL ——自定義數據
}
6.1.2.2 印章頭
印章頭由印章標識、版本號和廠商標識等組成,其數據結構如圖3所示:

圖3印章頭的數據結構示意圖
印章頭的ASN.1定義為:
SES_Header::=SEQUENCE{
ID IA5String, ——電子印章標識
version INTEGER, ——電子印章版本號標識
Vid IA5String ——電子印章廠商ID
}
其中:
ID:固定值“ES”;
version:電子印章數據結構版本號, 本標準設定數值為4,代表當前版本為v4;
Vid:電子印章廠商標識,在互聯互通時,用于識別不同的軟件廠商實現;
6.1.2.3 印章標識
esID:區分電子印章的唯一標識編碼,用于查找和索引其它信息。
6.1.2.4 印章屬性
印章屬性由印章類型、印章名稱、簽章人證書信息、制作日期、有效期起始日期、有效期終止日期等部分組成,其結構如圖4所示:

圖4印章屬性的數據結構示意圖
印章屬性的ASN.1定義為:
SES_ESPropertyInfo::=SEQUENCE{
type INTEGER, ——印章類型
name UTF8String, ——印章名稱
certListType INTEGER, ——簽章者證書信息類型
certList SES_CertList,——簽章者證書信息列表
createDate GeneralizedTime, ——印章制作日期
validStart GeneralizedTime, ——印章有效起始日期
validEnd GeneralizedTime ——印章有效終止日期
}
其中:
type:代表印章類型,可根據業務需要自定義;
name:印章名稱,如“XX公司財務專用章”,對于在公安部門進行備案的印章,其印章名稱與
備案的名稱保持一致;
certListType:簽章者證書信息類型,1-數字證書,2-數字證書的雜湊值
certList:簽章者證書信息列表,一個或多個簽章者證書或簽章者證書雜湊值組成的列表;
createDate:印章制作日期
validStart:印章有效期起始時間
validEnd:印章有效期終止時間
SES_CertList::=CHOICE{
certs CertInfoList, ——簽章者證書
certDigestList CertDigestList ——簽章者證書雜湊值
}
CertInfoList:: =SEQUENCE OF Cert
CertDigestList:: =SEQUENCE OF CertDigestObj
Cert::=OCTET STRING
Cert符合GB/T 20518中Certificate定義,按DER編碼格式存放。
CertDigestObj ::= SEQUENCE {
type ObjType, ——自定義類型
value CertDigestValue ——證書雜湊值
}
ObjType ::= PrintableString
CertDigestValue::= OCTET STRING
6.1.2.5 印章圖像數據
印章圖像數據由圖像類型、圖像數據、圖像顯示寬度和高度等部分組成,其數據結構如圖5所示:

圖5印章圖像數據結構示意圖
印章圖像數據的ASN.1定義為:
SES_ESPictrueInfo::=SEQUENCE{
type IA5String, ——圖像類型
data OCTET STRING, ——圖像數據
width INTEGER, ——圖像顯示寬度
height INTEGER ——圖像顯示高度
}
其中:
type:印章圖像數據格式類型,如GIF、BMP、JPG、PNG、SVG等;
data:印章圖像數據,機構的電子印章宜采用相關國家管理部門指定的印模;
width:圖像顯示寬度(單位為毫米mm);
height:圖像顯示高度(單位為毫米mm)。
6.1.2.6 自定義數據
自定義數據包含一系列自定義屬性字段,可用于支持電子印章擴展特性,其ASN.1定義為:
ExtensionDatas::=SEQUENCE SIZE(0..MAX)OF ExtData
ExtData::=SEQUENCE{
extnID OBJECT IDENTIFIER, ——自定義擴展字段標識
critical BOOLEAN DEFAULT FALSE, ——自定義擴展字段是否關鍵
extnValue OCTET STRING ——自定義擴展字段數據值
}
6.1.3 制章者證書
cert:對電子印章進行簽名的制章者證書,應符合GB/T 20518中Certificate定義,按DER編碼格式存放。
6.1.4 簽名算法標識
signAlgID:代表簽名算法OID標識,應遵循GB/T 33560。
例如,基于SM2和SM3算法的簽名OID為1.2.156.10197.1.501。
6.1.5 簽名值
signedValue:制章者對電子印章格式中印章信息域SES_SealInfo,按SEQUENCE方式組成的信息內容進行數字簽名所得的結果。
如果簽名算法使用SM2,應遵循GB/T 35276。
GB/T 385400-2020信息安全技術-安全電子簽章密碼技術規范
推薦文章: