Index: net/data/parse_ocsp_unittest/annotate_test_data.py |
diff --git a/net/data/verify_signed_data_unittest/annotate_test_data.py b/net/data/parse_ocsp_unittest/annotate_test_data.py |
similarity index 79% |
copy from net/data/verify_signed_data_unittest/annotate_test_data.py |
copy to net/data/parse_ocsp_unittest/annotate_test_data.py |
index 733392ee060e6b9c7e8c12279977566914f632fe..256a0a2f722e5e4adbea38fa0c0d7cb14ced7516 100755 |
--- a/net/data/verify_signed_data_unittest/annotate_test_data.py |
+++ b/net/data/parse_ocsp_unittest/annotate_test_data.py |
@@ -1,15 +1,16 @@ |
#!/usr/bin/python |
-# Copyright (c) 2015 The Chromium Authors. All rights reserved. |
+# Copyright (c) 2016 The Chromium Authors. All rights reserved. |
# Use of this source code is governed by a BSD-style license that can be |
# found in the LICENSE file. |
+# TODO(svaldez): Deduplicate various annotate_test_data. |
"""This script is called without any arguments to re-format all of the *.pem |
files in the script's parent directory. |
The main formatting change is to run "openssl asn1parse" for each of the PEM |
-block sections (except for DATA), and add that output to the comment. |
+block sections, and add that output to the comment. It also runs the command |
+on the OCTET STRING representing BasicOCSPResponse. |
-Refer to the README file for more information. |
""" |
import glob |
@@ -32,15 +33,10 @@ def Transform(file_data): |
# with the block, output it immediately before the block. |
user_comment = GetUserComment(block.comment) |
if user_comment: |
- result += user_comment |
+ result += user_comment + '\n' |
- # For every block except for DATA, try to pretty print the parsed ASN.1. |
- # DATA blocks likely would be DER in practice, but for the purposes of |
- # these tests seeing its structure doesn't clarify |
- # anything and is just a distraction. |
- if block.name != 'DATA': |
- generated_comment = GenerateCommentForBlock(block.name, block.data) |
- result += generated_comment + '\n' |
+ generated_comment = GenerateCommentForBlock(block.name, block.data) |
+ result += generated_comment + '\n' |
result += MakePemBlockString(block.name, block.data) |
@@ -57,6 +53,19 @@ def GenerateCommentForBlock(block_name, block_data): |
stdout_data, stderr_data = p.communicate(input=block_data) |
generated_comment = '$ openssl asn1parse -i < [%s]\n%s' % (block_name, |
stdout_data) |
+ |
+ # The OCTET STRING encoded BasicOCSPResponse is also parsed out using |
+ #'openssl asn1parse'. |
+ if block_name == 'OCSP RESPONSE': |
+ if '[HEX DUMP]:' in generated_comment: |
+ (generated_comment, response) = generated_comment.split('[HEX DUMP]:', 1) |
+ response = response.replace('\n', '') |
+ if len(response) % 2 != 0: |
+ response = '0' + response |
+ response = GenerateCommentForBlock('INNER', response.decode('hex')) |
+ response = response.split('\n', 1)[1] |
+ response = response.replace(': ', ': ') |
+ generated_comment += '\n%s' % (response) |
return generated_comment.strip('\n') |