base64.standard_b64decode ignores characters that are not in the base64 alphabet, which is as according to the RFC:  https://tools.ietf.org/html/rfc1521#section-5.2

However, it seems that Nova has a problem with non-base64 characters.  I entered a personality content of `()()()()`, which validated correctly and a group was created.  If you base64 decode this string, it is just `''`.

However, passing the same blob to nova:

    {
        "server": {
            "flavorRef": "2",
            "name": "worker",
            "imageRef": "a09e7493-7429-41e1-8d3f-384d7ece09c0",
            "personality": [
                {
                    "path": "/etc/banner.txt",
                    "contents": "()()()())"
                }
            ]
        }
    }

And nova returns

{"badRequest": {"message": "Personality content for /etc/banner.txt cannot be decoded", "code": 400}}

:(  So I think we have to both check for base64 alphabet characters and attempt to base64 decode to see if there are padding issues.  This can probably be done in the json schema though?  https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.16