Commit 0f7e7d94 authored by garciay's avatar garciay
Browse files

Major security bugs fixed for signature. Encryption to do.

parent b616c4f2
Loading
Loading
Loading
Loading
+53 −0
Original line number Diff line number Diff line
/**
 *  @author   ETSI / STF545
 *  @version  $URL$
 *            $Id$
 *  @desc     Module containing templates for IT PKI Protocol
 *  @copyright   ETSI Copyright Notification
 *               No part may be reproduced except as authorized by written permission.
 *               The copyright and the foregoing restriction extend to reproduction in all media.
 *               All rights reserved.
 *
 */
module LibItsPki_Templates {
    
    // LibIts
    import from IEEE1609dot2BaseTypes language "ASN.1:1997" all;
    import from IEEE1609dot2 language "ASN.1:1997" all;
    import from EtsiTs102941BaseTypes language "ASN.1:1997" all;
    import from EtsiTs102941TypesEnrolment language "ASN.1:1997" all;
    import from EtsiTs102941MessagesItss language "ASN.1:1997" all;
    import from EtsiTs103097Module language "ASN.1:1997" all;
    
    // LibItsCommon
    import from LibItsCommon_TypesAndValues all;
    import from LibItsCommon_Functions all;
    import from LibItsCommon_TypesAndValues all;
    import from LibItsCommon_ASN1_NamedNumbers all;
    
    // LibItsSecurity
    import from LibItsSecurity_Templates all;
    
    template (value) EnrolmentRequestMessage m_enrolmentRequestMessage(
                                                                       in template (value) EncryptedData p_encryptedData
    ) modifies m_etsiTs103097Data_encrypted := {
    } // End of template m_enrolmentRequestMessage
    
    template (value) EtsiTs102941DataContent m_enrolmentRequest(
                                                                in template (value) InnerEcRequestSignedForPop p_enrolmentRequest
    ) := {
        enrolmentRequest := p_enrolmentRequest
    } // End of template m_enrolmentRequest
    
    template (value) InnerEcRequest m_innerEcRequest(
                                                     in template (value) charstring p_itsId,
                                                     in template (value) PublicKeys p_publicKeys,
                                                     in template (value) CertificateSubjectAttributes p_requestedSubjectAttributes //(WITH COMPONENTS{certIssuePermissions ABSENT}),
    ) := {
        itsId                      := p_itsId,
        certificateFormat          := 1,
        publicKeys                 := p_publicKeys,
        requestedSubjectAttributes := p_requestedSubjectAttributes
    } // End of template m_innerEcRequest
    
} // End of module LibItsPki_Templates
 No newline at end of file
+1 −4
Original line number Diff line number Diff line
@@ -17,12 +17,9 @@ module LibItsPki_TestSystem {
    // LibIts
    import from IEEE1609dot2BaseTypes language "ASN.1:1997" all;
    import from IEEE1609dot2 language "ASN.1:1997" all;
    import from EtsiTs103097Module language "ASN.1:1997" all;
    import from EtsiTs102941MessagesCa language "ASN.1:1997" all;
    import from EtsiTs102941BaseTypes language "ASN.1:1997" all;
    import from EtsiTs102941TypesEnrolment language "ASN.1:1997" all;
    import from EtsiTs102941TypesAuthorization language "ASN.1:1997" all;
    import from EtsiTs102941TrustLists language "ASN.1:1997" all;
    import from EtsiTs102941MessagesItss language "ASN.1:1997" all;
    import from EtsiTs103097Module language "ASN.1:1997" all;
    
    // LibItsPki
+181 −52

File changed.

Preview size limit exceeded, changes collapsed.

+14 −58
Original line number Diff line number Diff line
@@ -157,50 +157,6 @@ module LibItsSecurity_Templates {
         */
        group basicFormatElementsSend {
            
            /**
             * @desc Send templates for security algorithm descriptions
             */
            group algorithms {
                
                /**
                 * @desc Send template for EccP256CurvePoint description based on x_coordinate_only type
                 * @see Draft ETSI TS 103 097 V1.3.1 Clause 4.2.5   EccP256CurvePoint
                 * @see Draft ETSI TS 103 097 V1.3.1 Table 2: Derivation of field sizes depending on the used algorithm
                 */
                template (value) EccP256CurvePoint m_eccPointecdsa_nistp256_with_sha256_x_coordinate_only(
                                                                                                          in template (value) octetstring p_x
                ) := { 
                    x_only := p_x
                } // End of template m_eccPointecdsa_nistp256_with_sha256_x_coordinate_only
                
                /**
                 * @desc Send template for EccP256CurvePoint description based on y_coordinate_only type
                 * @see Draft ETSI TS 103 097 V1.3.1 Clause 4.2.5   EccP256CurvePoint
                 * @see Draft ETSI TS 103 097 V1.3.1 Table 2: Derivation of field sizes depending on the used algorithm
                 */
                template (value) EccP256CurvePoint m_eccPointecdsa_nistp256_with_sha256_y_coordinate_only(
                                                                                                          in template (value) octetstring p_y
                ) := { 
                    compressed_y_0 := p_y
                } // End of template m_eccPointecdsa_nistp256_with_sha256_y_coordinate_only
                
                /**
                 * @desc Send template for EccP256CurvePoint description based on uncompressed type
                 * @see Draft ETSI TS 103 097 V1.3.1 Clause 4.2.5   EccP256CurvePoint
                 * @see Draft ETSI TS 103 097 V1.3.1 Table 2: Derivation of field sizes depending on the used algorithm
                 */
                template (value) EccP256CurvePoint m_eccPointecdsa_nistp256_with_sha256_uncompressed(
                                                                                                     in template (value) octetstring p_x,
                                                                                                     in template (value) octetstring p_y
                ) := {
                    uncompressedP256 := {
                       x := p_x,
                       y := p_y
                    }
                } // End of template m_eccPointecdsa_nistp256_with_sha256_uncompressed
                
            } // End of group algorithms
            
            /**
             * @desc Send templates for Signature description
             * @see Draft ETSI TS 103 097 V1.3.1 Clause 4.2.9   Signature
@@ -1242,7 +1198,7 @@ module LibItsSecurity_Templates {
    group certificates {
        
        /**
         * @desc Send certificate template
         * @desc Send certificate template of type explicit (signature is included)
         * @member p_signer_info            Signer information
         * @member p_subject_info           The subject information
         * @member p_subject_attributes     List of subject attribute
@@ -1263,7 +1219,7 @@ module LibItsSecurity_Templates {
        } // End of template m_etsiTs103097Certificate
        
        /**
         * @desc Send certificate template
         * @desc Send certificate template of type explicit (signature is included)
         * @member p_signer_info            Signer information
         * @member p_subject_info           The subject information
         * @member p_subject_attributes     List of subject attribute
@@ -1594,29 +1550,29 @@ module LibItsSecurity_Templates {
            ecdsaNistP256 := p_ecdsaNistP256
        } // End of template mw_publicVerificationKey_ecdsaNistP256
        
        template (value) PublicVerificationKey m_publicVerificationKey_ecdsaBrainpoolP256(
        template (value) PublicVerificationKey m_publicVerificationKey_ecdsaBrainpoolP256r1(
                                                                                            in template (value) EccP256CurvePoint p_ecdsaBrainpoolP256r1
        ) := { 
            ecdsaBrainpoolP256r1 := p_ecdsaBrainpoolP256r1
        } // End of template m_publicVerificationKey_ecdsaBrainpoolP256
        } // End of template m_publicVerificationKey_ecdsaBrainpoolP256r1
        
        template (present) PublicVerificationKey mw_publicVerificationKey_ecdsaBrainpoolP256(
        template (present) PublicVerificationKey mw_publicVerificationKey_ecdsaBrainpoolP256r1(
                                                                                               template (present) EccP256CurvePoint p_ecdsaBrainpoolP256r1 := ?
        ) := { 
            ecdsaBrainpoolP256r1 := p_ecdsaBrainpoolP256r1
        } // End of template mw_publicVerificationKey_ecdsaBrainpoolP256
        } // End of template mw_publicVerificationKey_ecdsaBrainpoolP256r1
        
        template (value) PublicVerificationKey m_publicVerificationKey_ecdsaBrainpoolP384(
        template (value) PublicVerificationKey m_publicVerificationKey_ecdsaBrainpoolP384r1(
                                                                                            in template (value) EccP384CurvePoint p_ecdsaBrainpoolP384r1
        ) := { 
            ecdsaBrainpoolP384r1 := p_ecdsaBrainpoolP384r1
        } // End of template m_publicVerificationKey_ecdsaBrainpoolP384
        } // End of template m_publicVerificationKey_ecdsaBrainpoolP384r1
        
        template (present) PublicVerificationKey mw_publicVerificationKey_ecdsaBrainpoolP384(
        template (present) PublicVerificationKey mw_publicVerificationKey_ecdsaBrainpoolP384r1(
                                                                                               template (present) EccP384CurvePoint p_ecdsaBrainpoolP384r1 := ?
        ) := { 
            ecdsaBrainpoolP384r1 := p_ecdsaBrainpoolP384r1
        } // End of template mw_publicVerificationKey_ecdsaBrainpoolP384
        } // End of template mw_publicVerificationKey_ecdsaBrainpoolP384r1
        
    } // End of group verificationKeys