public void Constructors() { using (var dummy = CreateDummy()) { var rc = CFGetRetainCount(dummy.Handle); using (var clone = new CFPropertyList(dummy.Handle)) { Assert.AreEqual(clone.Handle, dummy.Handle, "Handle 1"); Assert.AreEqual(rc + 1, CFGetRetainCount(clone.Handle), "RC 1"); } } using (var dummy = CreateDummy()) { var rc = CFGetRetainCount(dummy.Handle); using (var clone = new CFPropertyList(dummy.Handle, false)) { Assert.AreEqual(clone.Handle, dummy.Handle, "Handle 2"); Assert.AreEqual(rc + 1, CFGetRetainCount(clone.Handle), "RC 2"); } } using (var dummy = CreateDummy()) { CFRetain(dummy.Handle); var rc = CFGetRetainCount(dummy.Handle); using (var clone = new CFPropertyList(dummy.Handle, true)) { Assert.AreEqual(clone.Handle, dummy.Handle, "Handle 3"); Assert.AreEqual(rc, CFGetRetainCount(clone.Handle), "RC 3"); } } }
private IntPtr[] GrabTheData(string Response) { IntPtr[] ret = new IntPtr[5]; string temp; temp = Response.Remove(0, Response.IndexOf("<plist version") - 1); temp = temp.Remove((temp.IndexOf(@"</Protocol>")), temp.Length - ((temp.IndexOf(@"</Protocol>")))); string headers = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">"; temp = headers + "\r\n" + temp; if (File.Exists(Environment.CurrentDirectory + @"\wildcard.ticket") == true) { File.Delete(Environment.CurrentDirectory + @"\wildcard.ticket"); } System.IO.File.AppendAllText(Environment.CurrentDirectory + @"\wildcard.ticket", temp); CFPropertyList plist = new CFPropertyList(Environment.CurrentDirectory + @"\wildcard.ticket"); CFDictionary plist_to_dict = (IntPtr)plist; CFDictionary iphone_activation = (IntPtr)plist_to_dict.GetValue("iphone-activation"); CFDictionary dict = (IntPtr)iphone_activation.GetValue("activation-record"); ret[0] = dict.GetValue("AccountTokenCertificate"); ret[1] = dict.GetValue("AccountToken"); ret[2] = dict.GetValue("FairPlayKeyData"); ret[3] = dict.GetValue("DeviceCertificate"); ret[4] = dict.GetValue("AccountTokenSignature"); if (File.Exists(Environment.CurrentDirectory + @"\wildcard.ticket") == true) { File.Delete(Environment.CurrentDirectory + @"\wildcard.ticket"); } return(ret); }
public CGColorSpace(CFPropertyList propertyList) { if (propertyList == null) { throw new ArgumentNullException(nameof(propertyList)); } this.handle = CGColorSpaceCreateWithPropertyList(propertyList.Handle); }
static IntPtr Create(CFPropertyList propertyList) { if (propertyList is null) { throw new ArgumentNullException(nameof(propertyList)); } return(CGColorSpaceCreateWithPropertyList(propertyList.GetCheckedHandle())); }
CFPropertyList CreateDummy(string data = "<dict><key>SomeKey</key><string>SomeStringValue</string></dict>") { var plist = $@"<?xml version=""1.0"" encoding=""UTF-8""?> <!DOCTYPE plist PUBLIC ""-//Apple Computer//DTD PLIST 1.0//EN"" ""http://www.apple.com/DTDs/PropertyList-1.0.dtd""> <plist version=""1.0""> {data} </plist>"; var dummy = CFPropertyList.FromData(NSData.FromString(plist)); Assert.IsNull(dummy.Error, "Dummy Error"); return(dummy.PropertyList); }
private String DecodePListFile(String inFile) { String plist = null; try { plist = CFPropertyList.PropertyListToXML(ReadFile(inFile)); } catch (Exception err) { plist = ReadTextFile(inFile, 1024); } return(plist); }
private string Albert_Apple_Stuff(string cachefile) { string Quotation = ((char)34).ToString(); string request = "--DeviceActivation\r\nContent-Disposition: form-data; name=" + Quotation + "activation-info" + Quotation + "\r\n\r\n"; if (cachefile == "" || cachefile == null) { IntPtr activationinfo = Interface.CopyDictionary("ActivationInfo"); try { request += GrabTheDictionary(new CFPropertyList(activationinfo).ToString()) + "\r\n--DeviceActivation--"; } catch (Exception ex) { lblStatus.Text = "Could not get ActivationInfo from iDevice"; return(""); } } else { try { CFPropertyList cache = cachefile; request += GrabTheDictionary(cache.ToString()) + "\r\n--DeviceActivation--"; } catch (Exception ex) { lblStatus.Text = "Could not read cache file"; return(""); } } string headers = "POST /WebObjects/ALUnbrick.woa/wa/deviceActivation HTTP/1.1\r\n"; headers += "Accept-Encoding: gzip\r\n"; headers += "Accept-Language: en-us, en;q=0.50\r\n"; headers += "Content-Type: multipart/form-data; boundary=DeviceActivation\r\n"; headers += "Content-Length: " + (request).Length.ToString() + "\r\n"; headers += "Host: albert.apple.com\r\n"; headers += "Cache-Control: no-cache\r\n"; string ret = headers + "\r\n" + request; return(ret); }
public void CreateFromData() { var plist = @"<?xml version=""1.0"" encoding=""UTF-8""?> <!DOCTYPE plist PUBLIC ""-//Apple Computer//DTD PLIST 1.0//EN"" ""http://www.apple.com/DTDs/PropertyList-1.0.dtd""> <plist version=""1.0""> <dict> <key>SomeKey</key> <string>SomeStringValue</string> </dict> </plist>"; var rv = CFPropertyList.FromData(NSData.FromString(plist)); Assert.IsNull(rv.Error, "Error 1"); Assert.IsNotNull(rv.PropertyList, "PropertyList 1"); Assert.AreEqual(CFPropertyListFormat.XmlFormat1, rv.Format, "Format 1"); Assert.IsTrue(rv.PropertyList.IsValid(CFPropertyListFormat.BinaryFormat1), "IsValid Binary 1"); Assert.IsTrue(rv.PropertyList.IsValid(CFPropertyListFormat.OpenStep), "IsValid OpenStep 1"); Assert.IsTrue(rv.PropertyList.IsValid(CFPropertyListFormat.XmlFormat1), "IsValid Xml 1"); }
private String DecodePListData(Byte[] inData) { String plist = null; Boolean decodeFailed = false; try { plist = CFPropertyList.PropertyListToXML(inData); if (plist == null) { decodeFailed = true; } } catch (Exception err) { decodeFailed = true; Console.WriteLine(err.Message); } if (decodeFailed) { plist = System.Text.Encoding.ASCII.GetString(inData); } return(plist); }
protected INativeObject GetINativeInstance(Type t) { var ctor = t.GetConstructor(Type.EmptyTypes); if ((ctor != null) && !ctor.IsAbstract) { return(ctor.Invoke(null) as INativeObject); } if (!NativeObjectInterfaceType.IsAssignableFrom(t)) { throw new ArgumentException("t"); } switch (t.Name) { case "CFAllocator": return(CFAllocator.SystemDefault); case "CFBundle": var bundles = CFBundle.GetAll(); if (bundles.Length > 0) { return(bundles [0]); } else { throw new InvalidOperationException(string.Format("Could not create the new instance for type {0}.", t.Name)); } case "CFNotificationCenter": return(CFNotificationCenter.Darwin); case "CFReadStream": case "CFStream": CFReadStream readStream; CFWriteStream writeStream; CFStream.CreatePairWithSocketToHost("www.google.com", 80, out readStream, out writeStream); return(readStream); case "CFWriteStream": CFStream.CreatePairWithSocketToHost("www.google.com", 80, out readStream, out writeStream); return(writeStream); case "CFUrl": return(CFUrl.FromFile("/etc")); case "CFPropertyList": return(CFPropertyList.FromData(NSData.FromString("<string>data</string>")).PropertyList); case "DispatchData": return(DispatchData.FromByteBuffer(new byte [] { 1, 2, 3, 4 })); case "AudioFile": var path = Path.GetFullPath("1.caf"); var af = AudioFile.Open(CFUrl.FromFile(path), AudioFilePermission.Read, AudioFileType.CAF); return(af); case "CFHTTPMessage": return(CFHTTPMessage.CreateEmpty(false)); case "CFMutableString": return(new CFMutableString("xamarin")); case "CGBitmapContext": byte[] data = new byte [400]; using (CGColorSpace space = CGColorSpace.CreateDeviceRGB()) { return(new CGBitmapContext(data, 10, 10, 8, 40, space, CGBitmapFlags.PremultipliedLast)); } case "CGContextPDF": var filename = Environment.GetFolderPath(Environment.SpecialFolder.CommonDocuments) + "/t.pdf"; using (var url = new NSUrl(filename)) return(new CGContextPDF(url)); case "CGColorConversionInfo": var cci = new GColorConversionInfoTriple() { Space = CGColorSpace.CreateGenericRgb(), Intent = CGColorRenderingIntent.Default, Transform = CGColorConversionInfoTransformType.ApplySpace }; return(new CGColorConversionInfo((NSDictionary)null, cci, cci, cci)); case "CGDataConsumer": using (NSMutableData destData = new NSMutableData()) { return(new CGDataConsumer(destData)); } case "CGDataProvider": filename = "xamarin1.png"; return(new CGDataProvider(filename)); case "CGFont": return(CGFont.CreateWithFontName("Courier New")); case "CGPattern": return(new CGPattern( new RectangleF(0, 0, 16, 16), CGAffineTransform.MakeIdentity(), 16, 16, CGPatternTiling.NoDistortion, true, (cgc) => {})); case "CMBufferQueue": return(CMBufferQueue.CreateUnsorted(2)); case "CTFont": CTFontDescriptorAttributes fda = new CTFontDescriptorAttributes() { FamilyName = "Courier", StyleName = "Bold", Size = 16.0f }; using (var fd = new CTFontDescriptor(fda)) return(new CTFont(fd, 10)); case "CTFontCollection": return(new CTFontCollection(new CTFontCollectionOptions())); case "CTFontDescriptor": fda = new CTFontDescriptorAttributes(); return(new CTFontDescriptor(fda)); case "CTTextTab": return(new CTTextTab(CTTextAlignment.Left, 2)); case "CTTypesetter": return(new CTTypesetter(new NSAttributedString("Hello, world", new CTStringAttributes() { ForegroundColorFromContext = true, Font = new CTFont("ArialMT", 24) }))); case "CTFrame": var framesetter = new CTFramesetter(new NSAttributedString("Hello, world", new CTStringAttributes() { ForegroundColorFromContext = true, Font = new CTFont("ArialMT", 24) })); var bPath = UIBezierPath.FromRect(new RectangleF(0, 0, 3, 3)); return(framesetter.GetFrame(new NSRange(0, 0), bPath.CGPath, null)); case "CTFramesetter": return(new CTFramesetter(new NSAttributedString("Hello, world", new CTStringAttributes() { ForegroundColorFromContext = true, Font = new CTFont("ArialMT", 24) }))); case "CTGlyphInfo": return(new CTGlyphInfo("copyright", new CTFont("ArialMY", 24), "Foo")); case "CTLine": return(new CTLine(new NSAttributedString("Hello, world", new CTStringAttributes() { ForegroundColorFromContext = true, Font = new CTFont("ArialMT", 24) }))); case "CGImageDestination": var storage = new NSMutableData(); return(CGImageDestination.Create(new CGDataConsumer(storage), "public.png", 1)); case "CGImageMetadataTag": using (NSString name = new NSString("tagName")) using (var value = new NSString("value")) return(new CGImageMetadataTag(CGImageMetadataTagNamespaces.Exif, CGImageMetadataTagPrefixes.Exif, name, CGImageMetadataType.Default, value)); case "CGImageSource": filename = "xamarin1.png"; return(CGImageSource.FromUrl(NSUrl.FromFilename(filename))); case "SecPolicy": return(SecPolicy.CreateSslPolicy(false, null)); case "SecIdentity": using (var options = NSDictionary.FromObjectAndKey(new NSString("farscape"), SecImportExport.Passphrase)) { NSDictionary[] array; var result = SecImportExport.ImportPkcs12(farscape_pfx, options, out array); if (result != SecStatusCode.Success) { throw new InvalidOperationException(string.Format("Could not create the new instance for type {0} due to {1}.", t.Name, result)); } return(new SecIdentity(array [0].LowlevelObjectForKey(SecImportExport.Identity.Handle))); } case "SecTrust": X509Certificate x = new X509Certificate(mail_google_com); using (var policy = SecPolicy.CreateSslPolicy(true, "mail.google.com")) return(new SecTrust(x, policy)); case "SslContext": return(new SslContext(SslProtocolSide.Client, SslConnectionType.Stream)); case "UIFontFeature": return(new UIFontFeature(CTFontFeatureNumberSpacing.Selector.ProportionalNumbers)); case "NetworkReachability": return(new NetworkReachability(IPAddress.Loopback, null)); case "VTCompressionSession": case "VTSession": return(VTCompressionSession.Create(1024, 768, CMVideoCodecType.H264, (sourceFrame, status, flags, buffer) => { }, null, (CVPixelBufferAttributes)null)); case "VTFrameSilo": return(VTFrameSilo.Create()); case "VTMultiPassStorage": return(VTMultiPassStorage.Create()); case "CFString": return(new CFString("test")); case "DispatchBlock": return(new DispatchBlock(() => { })); case "DispatchQueue": return(new DispatchQueue("com.example.subsystem.taskXYZ")); case "DispatchGroup": return(DispatchGroup.Create()); case "CGColorSpace": return(CGColorSpace.CreateDeviceCmyk()); case "CGGradient": CGColor[] cArray = { UIColor.Black.CGColor, UIColor.Clear.CGColor, UIColor.Blue.CGColor }; return(new CGGradient(null, cArray)); case "CGImage": filename = "xamarin1.png"; using (var dp = new CGDataProvider(filename)) return(CGImage.FromPNG(dp, null, false, CGColorRenderingIntent.Default)); case "CGColor": return(UIColor.Black.CGColor); case "CMClock": return(CMClock.HostTimeClock); case "CMTimebase": return(new CMTimebase(CMClock.HostTimeClock)); case "CVPixelBufferPool": return(new CVPixelBufferPool( new CVPixelBufferPoolSettings(), new CVPixelBufferAttributes(CVPixelFormatType.CV24RGB, 100, 50) )); case "SecCertificate": using (var cdata = NSData.FromArray(mail_google_com)) return(new SecCertificate(cdata)); case "SecCertificate2": using (var cdata = NSData.FromArray(mail_google_com)) return(new SecCertificate2(new SecCertificate(cdata))); case "SecTrust2": X509Certificate x2 = new X509Certificate(mail_google_com); using (var policy = SecPolicy.CreateSslPolicy(true, "mail.google.com")) return(new SecTrust2(new SecTrust(x2, policy))); case "SecIdentity2": using (var options = NSDictionary.FromObjectAndKey(new NSString("farscape"), SecImportExport.Passphrase)) { NSDictionary[] array; var result = SecImportExport.ImportPkcs12(farscape_pfx, options, out array); if (result != SecStatusCode.Success) { throw new InvalidOperationException(string.Format("Could not create the new instance for type {0} due to {1}.", t.Name, result)); } return(new SecIdentity2(new SecIdentity(array [0].LowlevelObjectForKey(SecImportExport.Identity.Handle)))); } case "SecKey": SecKey private_key; SecKey public_key; using (var record = new SecRecord(SecKind.Key)) { record.KeyType = SecKeyType.RSA; record.KeySizeInBits = 512; // it's not a performance test :) SecKey.GenerateKeyPair(record.ToDictionary(), out public_key, out private_key); return(private_key); } case "SecAccessControl": return(new SecAccessControl(SecAccessible.WhenPasscodeSetThisDeviceOnly)); default: throw new InvalidOperationException(string.Format("Could not create the new instance for type {0}.", t.Name)); } }
public CGColorSpace(CFPropertyList propertyList) : base(Create(propertyList), true) { }