def allow_identity(self, fingerprint):
        """
        Allows access from documents digitally signed by the key with
        ``fingerprint``.

        In theory, multiple algorithms can be added in the future for
        calculating ``fingerprint`` from the signing key, but at this
        time only one algorithm -- SHA-1 -- is supported by the
        cross-domain policy specification.

        """
        if self.site_control == SITE_CONTROL_NONE:
            raise TypeError(
                METAPOLICY_ERROR.format("allow access from signed documents")
            )
        if fingerprint not in self.identities:
            self.identities.append(fingerprint)
Allows access from documents digitally signed by the key with
        ``fingerprint``.

        In theory, multiple algorithms can be added in the future for
        calculating ``fingerprint`` from the signing key, but at this
        time only one algorithm -- SHA-1 -- is supported by the
        cross-domain policy specification.