--- Microsoft individual code signing data blob parser
---
--- Copyright (C) 2012 Red Hat, Inc. All Rights Reserved.
--- Written by David Howells (dhowells@redhat.com)
---
--- This program is free software; you can redistribute it and/or
--- modify it under the terms of the GNU General Public Licence
--- as published by the Free Software Foundation; either version
--- 2 of the Licence, or (at your option) any later version.
---

MSCode ::= SEQUENCE {
	type			SEQUENCE {
		contentType	ContentType,
		parameters	ANY
	},
	content			SEQUENCE {
		digestAlgorithm	DigestAlgorithmIdentifier,
		digest		OCTET STRING ({ mscode_note_digest })
	}
}

ContentType ::= OBJECT IDENTIFIER ({ mscode_note_content_type })

DigestAlgorithmIdentifier ::= SEQUENCE {
	algorithm   OBJECT IDENTIFIER ({ mscode_note_digest_algo }),
	parameters  ANY OPTIONAL
}
