private IdentityManagerApp parent_app;
- public MoonshotServer (IdentityManagerApp app)
+ public MoonshotServer(IdentityManagerApp app)
{
this.parent_app = app;
}
return true;
}
- public async 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)
+ public async 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)
{
- var request = new IdentityRequest (parent_app,
- nai,
- password,
- service);
- request.set_callback ((IdentityRequest) => get_identity.callback());
- request.execute ();
+ var request = new IdentityRequest(parent_app,
+ nai,
+ password,
+ service);
+ request.set_callback((IdentityRequest) => get_identity.callback());
+ request.execute();
yield;
nai_out = "";
return false;
}
- public async 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)
+ public async 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)
{
- var request = new IdentityRequest.default (parent_app);
- request.set_callback ((IdentityRequest) => get_default_identity.callback());
- request.execute ();
+ var request = new IdentityRequest.default(parent_app);
+ request.set_callback((IdentityRequest) => get_default_identity.callback());
+ request.execute();
yield;
nai_out = "";
string ?server_cert,
int force_flat_file_store)
{
- IdCard idcard = new IdCard ();
-
- idcard.display_name = display_name;
- idcard.username = user_name;
- idcard.password = password;
- if ((password != null) && (password != ""))
- idcard.store_password = true;
- idcard.issuer = realm;
- idcard.services = services;
- idcard.trust_anchor.ca_cert = ca_cert;
- idcard.trust_anchor.subject = subject;
- idcard.trust_anchor.subject_alt = subject_alt;
- idcard.trust_anchor.server_cert = server_cert;
-
- if (rules_patterns.length == rules_always_confirm.length)
- {
- /* workaround Centos vala array property bug: use temp array */
- Rule[] rules = new Rule[rules_patterns.length];
+ IdCard idcard = new IdCard();
+
+ idcard.display_name = display_name;
+ idcard.username = user_name;
+ idcard.password = password;
+ if ((password != null) && (password != ""))
+ idcard.store_password = true;
+ idcard.issuer = realm;
+ idcard.services = services;
+ idcard.trust_anchor.ca_cert = ca_cert;
+ idcard.trust_anchor.subject = subject;
+ idcard.trust_anchor.subject_alt = subject_alt;
+ idcard.trust_anchor.server_cert = server_cert;
+
+ if (rules_patterns.length == rules_always_confirm.length)
+ {
+ /* workaround Centos vala array property bug: use temp array */
+ Rule[] rules = new Rule[rules_patterns.length];
- for (int i=0; i<rules.length; i++)
- {
- rules[i].pattern = rules_patterns[i];
- rules[i].always_confirm = rules_always_confirm[i];
+ for (int i = 0; i < rules.length; i++)
+ {
+ rules[i].pattern = rules_patterns[i];
+ rules[i].always_confirm = rules_always_confirm[i];
+ }
+ idcard.rules = rules;
}
- idcard.rules = rules;
- }
- return parent_app.add_identity (idcard, force_flat_file_store!=0);
+ return parent_app.add_identity(idcard, force_flat_file_store!=0);
}
- public int install_from_file (string file_name)
+ public int install_from_file(string file_name)
{
- var webp = new WebProvisioning.Parser (file_name);
+ var webp = new WebProvisioning.Parser(file_name);
- webp.parse();
- bool result = false;
- int installed_cards = 0;
- foreach (IdCard card in WebProvisioning.cards)
- {
- string[] rules_patterns = {};
- string[] rules_always_confirm = {};
-
- if (card.rules.length > 0)
- {
- int i = 0;
- rules_patterns = new string[card.rules.length];
- rules_always_confirm = new string[card.rules.length];
- foreach (Rule r in card.rules)
+ webp.parse();
+ bool result = false;
+ int installed_cards = 0;
+ foreach (IdCard card in WebProvisioning.cards)
{
- rules_patterns[i] = r.pattern;
- rules_always_confirm[i] = r.always_confirm;
- i++;
+ string[] rules_patterns = {};
+ string[] rules_always_confirm = {};
+
+ if (card.rules.length > 0)
+ {
+ int i = 0;
+ rules_patterns = new string[card.rules.length];
+ rules_always_confirm = new string[card.rules.length];
+ foreach (Rule r in card.rules)
+ {
+ rules_patterns[i] = r.pattern;
+ rules_always_confirm[i] = r.always_confirm;
+ i++;
+ }
+ }
+
+ result = install_id_card(card.display_name,
+ card.username,
+ card.password,
+ card.issuer,
+ rules_patterns,
+ rules_always_confirm,
+ card.services,
+ card.trust_anchor.ca_cert,
+ card.trust_anchor.subject,
+ card.trust_anchor.subject_alt,
+ card.trust_anchor.server_cert,
+ 0);
+ if (result) {
+ installed_cards++;
+ }
}
- }
-
- result = install_id_card (card.display_name,
- card.username,
- card.password,
- card.issuer,
- rules_patterns,
- rules_always_confirm,
- card.services,
- card.trust_anchor.ca_cert,
- card.trust_anchor.subject,
- card.trust_anchor.subject_alt,
- card.trust_anchor.server_cert,
- 0);
- if (result) {
- installed_cards++;
- }
+ return installed_cards;
}
- return installed_cards;
- }
}
private static MoonshotServer instance = null;
- public static void start (IdentityManagerApp app)
+ public static void start(IdentityManagerApp app)
{
parent_app = app;
- Rpc.server_start (MoonshotRpcInterface.spec, "/org/janet/Moonshot", Rpc.Flags.PER_USER);
+ Rpc.server_start(MoonshotRpcInterface.spec, "/org/janet/Moonshot", Rpc.Flags.PER_USER);
}
- public static MoonshotServer get_instance ()
+ public static MoonshotServer get_instance()
{
if (instance == null)
- instance = new MoonshotServer ();
+ instance = new MoonshotServer();
return instance;
}
[CCode (cname = "moonshot_get_identity_rpc")]
- public static void get_identity (Rpc.AsyncCall call,
- string nai,
- string password,
- string service,
- ref string nai_out,
- ref string password_out,
- ref string server_certificate_hash,
- ref string ca_certificate,
- ref string subject_name_constraint,
- ref string subject_alt_name_constraint)
+ public static void get_identity(Rpc.AsyncCall call,
+ string nai,
+ string password,
+ string service,
+ ref string nai_out,
+ ref string password_out,
+ ref string server_certificate_hash,
+ ref string ca_certificate,
+ ref string subject_name_constraint,
+ ref string subject_alt_name_constraint)
{
bool result = false;
- var request = new IdentityRequest (parent_app,
- nai,
- password,
- service);
+ var request = new IdentityRequest(parent_app,
+ nai,
+ password,
+ service);
// Pass execution to the main loop and block the RPC thread
- request.mutex = new Mutex ();
- request.cond = new Cond ();
- request.set_callback (return_identity_cb);
+ request.mutex = new Mutex();
+ request.cond = new Cond();
+ request.set_callback(return_identity_cb);
- request.mutex.lock ();
- Idle.add (request.execute);
+ request.mutex.lock();
+ Idle.add(request.execute);
while (request.complete == false)
- request.cond.wait (request.mutex);
+ request.cond.wait(request.mutex);
nai_out = "";
password_out = "";
subject_name_constraint = id_card.trust_anchor.subject;
subject_alt_name_constraint = id_card.trust_anchor.subject_alt;
- return_if_fail (nai_out != null);
- return_if_fail (password_out != null);
- return_if_fail (server_certificate_hash != null);
- return_if_fail (ca_certificate != null);
- return_if_fail (subject_name_constraint != null);
- return_if_fail (subject_alt_name_constraint != null);
+ return_if_fail(nai_out != null);
+ return_if_fail(password_out != null);
+ return_if_fail(server_certificate_hash != null);
+ return_if_fail(ca_certificate != null);
+ return_if_fail(subject_name_constraint != null);
+ return_if_fail(subject_alt_name_constraint != null);
result = true;
}
// reason they are 'ref' not 'out' parameters - Vala assigns to the
// 'out' parameters only at the end of the function, which is too
// late.
- call.return (&result);
+ call.return(&result);
- request.cond.signal ();
- request.mutex.unlock ();
+ request.cond.signal();
+ request.mutex.unlock();
}
[CCode (cname = "moonshot_get_default_identity_rpc")]
- public static void get_default_identity (Rpc.AsyncCall call,
- ref string nai_out,
- ref string password_out,
- ref string server_certificate_hash,
- ref string ca_certificate,
- ref string subject_name_constraint,
- ref string subject_alt_name_constraint)
+ public static void get_default_identity(Rpc.AsyncCall call,
+ ref string nai_out,
+ ref string password_out,
+ ref string server_certificate_hash,
+ ref string ca_certificate,
+ ref string subject_name_constraint,
+ ref string subject_alt_name_constraint)
{
bool result;
- var request = new IdentityRequest.default (parent_app);
- request.mutex = new Mutex ();
- request.cond = new Cond ();
- request.set_callback (return_identity_cb);
+ var request = new IdentityRequest.default(parent_app);
+ request.mutex = new Mutex();
+ request.cond = new Cond();
+ request.set_callback(return_identity_cb);
- request.mutex.lock ();
- Idle.add (request.execute);
+ request.mutex.lock();
+ Idle.add(request.execute);
while (request.complete == false)
- request.cond.wait (request.mutex);
+ request.cond.wait(request.mutex);
nai_out = "";
password_out = "";
password_out = request.id_card.password;
server_certificate_hash = "certificate";
- return_if_fail (nai_out != null);
- return_if_fail (password_out != null);
- return_if_fail (server_certificate_hash != null);
- return_if_fail (ca_certificate != null);
- return_if_fail (subject_name_constraint != null);
- return_if_fail (subject_alt_name_constraint != null);
+ return_if_fail(nai_out != null);
+ return_if_fail(password_out != null);
+ return_if_fail(server_certificate_hash != null);
+ return_if_fail(ca_certificate != null);
+ return_if_fail(subject_name_constraint != null);
+ return_if_fail(subject_alt_name_constraint != null);
result = true;
}
result = false;
}
- call.return (&result);
+ call.return(&result);
- request.cond.signal ();
- request.mutex.unlock ();
+ request.cond.signal();
+ request.mutex.unlock();
}
// Called from the main loop thread when an identity has
// been selected
- static void return_identity_cb (IdentityRequest request) {
+ static void return_identity_cb(IdentityRequest request) {
// Notify the RPC thread that the request is complete
- request.mutex.lock ();
- request.cond.signal ();
+ request.mutex.lock();
+ request.cond.signal();
// Block the main loop until the RPC call has returned
// to avoid any races
- request.cond.wait (request.mutex);
- request.mutex.unlock ();
+ request.cond.wait(request.mutex);
+ request.mutex.unlock();
}
[CCode (cname = "moonshot_install_id_card_rpc")]
- public static bool install_id_card (string display_name,
- string user_name,
- string password,
- string realm,
- string[] rules_patterns,
- string[] rules_always_confirm,
- string[] services,
- string ca_cert,
- string subject,
- string subject_alt,
- string server_cert,
- bool force_flat_file_store)
+ public static bool install_id_card(string display_name,
+ string user_name,
+ string password,
+ string realm,
+ string[] rules_patterns,
+ string[] rules_always_confirm,
+ string[] services,
+ string ca_cert,
+ string subject,
+ string subject_alt,
+ string server_cert,
+ bool force_flat_file_store)
{
- IdCard idcard = new IdCard ();
+ IdCard idcard = new IdCard();
bool success = false;
Mutex mutex = new Mutex();
Cond cond = new Cond();
{
idcard.rules = new Rule[rules_patterns.length];
- for (int i=0; i<idcard.rules.length; i++)
+ for (int i = 0; i < idcard.rules.length; i++)
{
idcard.rules[i].pattern = rules_patterns[i];
idcard.rules[i].always_confirm = rules_always_confirm[i];
}
}
- mutex.lock ();
+ mutex.lock();
// Defer addition to the main loop thread.
- Idle.add (() => {
- mutex.lock ();
- success = parent_app.add_identity (idcard, force_flat_file_store);
- cond.signal ();
- mutex.unlock ();
- return false;
- });
-
- cond.wait (mutex);
- mutex.unlock ();
+ Idle.add(() => {
+ mutex.lock();
+ success = parent_app.add_identity(idcard, force_flat_file_store);
+ cond.signal();
+ mutex.unlock();
+ return false;
+ });
+
+ cond.wait(mutex);
+ mutex.unlock();
return success;
}