cancel
Showing results for 
Search instead for 
Did you mean: 

Alfresco for 21 CFR Part 11 - Digital Signatures

priyanjali
Champ in-the-making
Champ in-the-making
Hi,
I am using Alfresco ECM for 21CFR part 11 compliant document management.
I need to digitally sign the documents stored in Alfresco.
Kindly send in your response  about it can be achieved succesfully…
I thought of using microsoft office utilities not clear how to implement that.
Thanks
7 REPLIES 7

derek
Star Contributor
Star Contributor
Hi,

The solution depends on where (at which level or the repo or client) you wish to apply the digital signatures and how you intend to validate the documents.  Please describe, in some detail, the requirements and I could advise where and what should be enhanced to accomplish this.  Alfresco provides hook points (using Spring and other mechanisms) in many layers of the application.

Regards

priyanjali
Champ in-the-making
Champ in-the-making
Hi Derek,

Thanks for your reply.
The scenario is as follows:
A user uploads a document in "Drafts" workspace , digitally signs it and sends it to the "Approver" workspace for approval.
Approver reviews the document sent , again digitally signs it as his approval and Publishes it into the "Publish" workspace.
When i am looking into the functionality of alfresco i cudnt find any direct support for embedding digital signatures in a document (of any type) thorugh Alfresco.
Also i want that once a document is converted into a PDF (using rules from ALfresco) the document should contain digital signatures present in the document before conversion.

Kindly give me your email id so that i can contact you directly….
Thanks..

alarocca
Champ in-the-making
Champ in-the-making
This is what I did for a customer of mine:

For each pdf, Alfresco shows a new icon "Sign". Clicking on that icon, a dialog appears showing if the document has been signed. In any case, if a token (eg, smartcard, usb) is availaible, the certificate details are displayed and the user can enters his pin and sign the document. Of course, this is the result of a "not so simple" communication from the client, where the signature has created, and the server where the document is stored, the hash is calculated and finally the signature is saved within the document.

Best regards,
Alessandro

Hi Derek,

Thanks for your reply.
The scenario is as follows:
A user uploads a document in "Drafts" workspace , digitally signs it and sends it to the "Approver" workspace for approval.
Approver reviews the document sent , again digitally signs it as his approval and Publishes it into the "Publish" workspace.
When i am looking into the functionality of alfresco i cudnt find any direct support for embedding digital signatures in a document (of any type) thorugh Alfresco.
Also i want that once a document is converted into a PDF (using rules from ALfresco) the document should contain digital signatures present in the document before conversion.

Kindly give me your email id so that i can contact you directly….
Thanks..

dacedos
Champ in-the-making
Champ in-the-making
For each pdf, Alfresco shows a new icon "Sign". Clicking on that icon, a dialog appears showing if the document has been signed. In any case, if a token (eg, smartcard, usb) is availaible, the certificate details are displayed and the user can enters his pin and sign the document. Of course, this is the result of a "not so simple" communication from the client, where the signature has created, and the server where the document is stored, the hash is calculated and finally the signature is saved within the document.

Hello,

How did you get to show the icon only for pdf files? I found this, but I don't know the rigth value for the condition

   <config evaluator="node-type" condition="wca:webfolder">
      <actions>
         <!– Override actions for WCM Website space type in the Browse screen –>
         <action-group id="space_browse">
            <show-link>false</show-link>
            <!– hide the cut and copy operations for website space –>
            <action idref="cut_node" hide="true" />
            <action idref="copy_node" hide="true" />
         </action-group>
      </actions>
   </config>


thanks in advanced

alarocca
Champ in-the-making
Champ in-the-making
You should create an evaluator that extends org.alfresco.web.action.ActionEvaluator.

BR,
Alessandro

For each pdf, Alfresco shows a new icon "Sign". Clicking on that icon, a dialog appears showing if the document has been signed. In any case, if a token (eg, smartcard, usb) is availaible, the certificate details are displayed and the user can enters his pin and sign the document. Of course, this is the result of a "not so simple" communication from the client, where the signature has created, and the server where the document is stored, the hash is calculated and finally the signature is saved within the document.

Hello,

How did you get to show the icon only for pdf files? I found this, but I don't know the rigth value for the condition

   <config evaluator="node-type" condition="wca:webfolder">
      <actions>
         <!– Override actions for WCM Website space type in the Browse screen –>
         <action-group id="space_browse">
            <show-link>false</show-link>
            <!– hide the cut and copy operations for website space –>
            <action idref="cut_node" hide="true" />
            <action idref="copy_node" hide="true" />
         </action-group>
      </actions>
   </config>


thanks in advanced

dacedos
Champ in-the-making
Champ in-the-making
but how can I know the content-type is pdf from the java code??

alarocca
Champ in-the-making
Champ in-the-making
but how can I know the content-type is pdf from the java code??

Check the proper node property.

    public boolean evaluate(Node node) {

        try {
            String mimeType = getMimeType(node.getProperties().get("cm:content").toString());

            return (mimeType.equalsIgnoreCase("application/pdf") && !node.isLocked());
       
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
       
    }

    private String getMimeType(String s) {
        int p1 = s.indexOf("mimetype=") + 9;
        int p2 = s.indexOf("|", p1);

        if (p2 != -1)
            return s.substring(p1, p2);
        else
            return s.substring(p1);
    }