X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=src%2Fmoonshot-webp-parser.vala;h=efe53b57878d845299f98aff7084af236369020e;hb=c64066e0fd6838caafba7cac51b00ea2980a717e;hp=09a22523233f458e547ac4187bfffbc8ac3a131c;hpb=be00e9f68a929ee4a45f5c648df644a1e0e3c7fc;p=moonshot-ui.git diff --git a/src/moonshot-webp-parser.vala b/src/moonshot-webp-parser.vala index 09a2252..efe53b5 100644 --- a/src/moonshot-webp-parser.vala +++ b/src/moonshot-webp-parser.vala @@ -1,326 +1,122 @@ -namespace Moonshot -{ - [DBus (name = "org.janet.Moonshot")] - public interface MoonshotServer : Object - { - public async abstract bool get_identity (string nai, - string password, - string service, - out string nai_out, - out string password_out, - out string server_certificate_hash, - out string ca_certificate, - out string subject_name_constraint, - out string subject_alt_name_constraint) - throws DBus.Error; - - public async abstract bool get_default_identity (out string nai_out, - out string password_out, - out string server_certificate_hash, - out string ca_certificate, - out string subject_name_constraint, - out string subject_alt_name_constraint) - throws DBus.Error; - - public async abstract bool install_id_card (string display_name, - string user_name, - string password, - string realm, - Rule[] rules, - string[] services, - string ca_cert, - string subject, - string subject_alt, - string server_cert) - throws DBus.Error; - } -} - +/* + * Copyright (c) 2011-2014, JANET(UK) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of JANET(UK) nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. +*/ +using Moonshot; namespace WebProvisioning { - IdCard card; - IdCard[] cards; - - bool - check_stack (SList stack, string[] reference) - { - if (stack.length () < reference.length) - return false; - - for (int i = 0; i stack) - { - string[] always_confirm_path = {"always-confirm", "rule", "selection-rules", "identity", "identities"}; - - return check_stack (stack, always_confirm_path); - } - - bool - pattern_handler (SList stack) - { - string[] pattern_path = {"pattern", "rule", "selection-rules", "identity", "identities"}; - - return check_stack (stack, pattern_path); - } - - bool - server_cert_handler (SList stack) - { - string[] server_cert_path = {"server-cert", "trust-anchor", "identity", "identities"}; - - return check_stack (stack, server_cert_path); - } - - bool - subject_alt_handler (SList stack) - { - string[] subject_alt_path = {"subject-alt", "trust-anchor", "identity", "identities"}; - - return check_stack (stack, subject_alt_path); - } - - bool - subject_handler (SList stack) - { - string[] subject_path = {"subject", "trust-anchor", "identity", "identities"}; - - return check_stack (stack, subject_path); - } - - bool - ca_cert_handler (SList stack) - { - string[] ca_path = {"ca-cert", "trust-anchor", "identity", "identities"}; - - return check_stack (stack, ca_path); - } - - bool - realm_handler (SList stack) - { - string[] realm_path = {"realm", "identity", "identities"}; - - return check_stack (stack, realm_path); - } - bool - password_handler (SList stack) - { - string[] password_path = {"password", "identity", "identities"}; - - return check_stack (stack, password_path); - } - - bool - user_handler (SList stack) - { - string[] user_path = {"user", "identity", "identities"}; - - return check_stack (stack, user_path); - } - - bool - display_name_handler (SList stack) - { - string[] display_name_path = {"display-name", "identity", "identities"}; - - return check_stack (stack, display_name_path); - } - - public void - start_element_func (MarkupParseContext context, - string element_name, - string[] attribute_names, - string[] attribute_values) throws MarkupError - { - if (element_name == "identity") - { - IdCard[] tmp_cards = cards; - - cards = new IdCard[tmp_cards.length + 1]; - for (int i=0; i stack = context.get_element_stack (); - - if (text_len < 1) - return; - - if (stack.nth_data(0) == "display-name" && display_name_handler (stack)) - { - card.display_name = text; - } - else if (stack.nth_data(0) == "user" && user_handler (stack)) - { - card.username = text; - } - else if (stack.nth_data(0) == "password" && password_handler (stack)) - { - card.password = text; - } - else if (stack.nth_data(0) == "realm" && realm_handler (stack)) - { - card.issuer = text; - } - else if (stack.nth_data(0) == "service") - { - string[] services = card.services; - card.services = new string[services.length + 1]; - for (int i = 0; i 0) + { + int i = 0; + rules_patterns = new string[rules.length]; + rules_always_confirm = new string[rules.length]; + foreach (Rule r in rules) + { + rules_patterns[i] = r.pattern; + rules_always_confirm[i] = r.always_confirm; + i++; + } + } + + Moonshot.install_id_card(card.display_name, + card.username, + card.password, + card.issuer, + rules_patterns, + rules_always_confirm, + services, + card.trust_anchor.ca_cert, + card.trust_anchor.subject, + card.trust_anchor.subject_alt, + card.trust_anchor.server_cert, + force_flat_file_store, + out error); + + if (error != null) + { + stderr.printf("Error: %s", error.message); + continue; + } + } + + return 0; } - - return 0; - } }