| /* -*- Mode: C; tab-width: 4 -*- |
| * |
| * Copyright (c) 2002-2004 Apple Computer, Inc. All rights reserved. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| |
| // SharedSecret.cpp : implementation file |
| // |
| |
| |
| #include <Secret.h> |
| #include "stdafx.h" |
| #include "SharedSecret.h" |
| #include <WinServices.h> |
| |
| #include <DebugServices.h> |
| |
| |
| // SharedSecret dialog |
| |
| IMPLEMENT_DYNAMIC(CSharedSecret, CDialog) |
| |
| |
| //--------------------------------------------------------------------------------------------------------------------------- |
| // CSharedSecret::CSharedSecret |
| //--------------------------------------------------------------------------------------------------------------------------- |
| |
| CSharedSecret::CSharedSecret(CWnd* pParent /*=NULL*/) |
| : CDialog(CSharedSecret::IDD, pParent) |
| , m_key(_T("")) |
| , m_secret(_T("")) |
| { |
| } |
| |
| |
| //--------------------------------------------------------------------------------------------------------------------------- |
| // CSharedSecret::~CSharedSecret |
| //--------------------------------------------------------------------------------------------------------------------------- |
| |
| CSharedSecret::~CSharedSecret() |
| { |
| } |
| |
| |
| //--------------------------------------------------------------------------------------------------------------------------- |
| // CSharedSecret::DoDataExchange |
| //--------------------------------------------------------------------------------------------------------------------------- |
| |
| void CSharedSecret::DoDataExchange(CDataExchange* pDX) |
| { |
| CDialog::DoDataExchange(pDX); |
| DDX_Text(pDX, IDC_KEY, m_key ); |
| DDX_Text(pDX, IDC_SECRET, m_secret ); |
| } |
| |
| |
| BEGIN_MESSAGE_MAP(CSharedSecret, CDialog) |
| END_MESSAGE_MAP() |
| |
| |
| //--------------------------------------------------------------------------------------------------------------------------- |
| // CSharedSecret::Load |
| //--------------------------------------------------------------------------------------------------------------------------- |
| |
| void |
| CSharedSecret::Load( CString zone ) |
| { |
| char zoneUTF8[ 256 ]; |
| char outDomain[ 256 ]; |
| char outKey[ 256 ]; |
| char outSecret[ 256 ]; |
| |
| StringObjectToUTF8String( zone, zoneUTF8, sizeof( zoneUTF8 ) ); |
| |
| if ( LsaGetSecret( zoneUTF8, outDomain, sizeof( outDomain ) / sizeof( TCHAR ), outKey, sizeof( outKey ) / sizeof( TCHAR ), outSecret, sizeof( outSecret ) / sizeof( TCHAR ) ) ) |
| { |
| m_key = outKey; |
| m_secret = outSecret; |
| } |
| else |
| { |
| m_key = zone; |
| } |
| } |
| |
| |
| //--------------------------------------------------------------------------------------------------------------------------- |
| // CSharedSecret::Commit |
| //--------------------------------------------------------------------------------------------------------------------------- |
| |
| void |
| CSharedSecret::Commit( CString zone ) |
| { |
| char zoneUTF8[ 256 ]; |
| char keyUTF8[ 256 ]; |
| char secretUTF8[ 256 ]; |
| |
| StringObjectToUTF8String( zone, zoneUTF8, sizeof( zoneUTF8 ) ); |
| StringObjectToUTF8String( m_key, keyUTF8, sizeof( keyUTF8 ) ); |
| StringObjectToUTF8String( m_secret, secretUTF8, sizeof( secretUTF8 ) ); |
| |
| LsaSetSecret( zoneUTF8, keyUTF8, secretUTF8 ); |
| } |