小编pou*_*pou的帖子

CryptographicException"密钥无法在指定状态下使用." 在尝试导出X509私钥的RSAParameters时

我盯着这看了很长一段时间,感谢MSDN文档我无法弄清楚到底发生了什么.基本上我正在将光盘中的PF​​X文件加载到a中,X509Certificate2并尝试使用公钥加密字符串并使用私钥解密.

为什么我感到困惑:加密/解密在我将引用传递给RSACryptoServiceProvider自身时起作用:

byte[] ed1 = EncryptRSA("foo1", x.PublicKey.Key as RSACryptoServiceProvider);
string foo1 = DecryptRSA(ed1, x.PrivateKey as RSACryptoServiceProvider);
Run Code Online (Sandbox Code Playgroud)

但如果出口和传递RSAParameter:

byte[] ed = EncryptRSA("foo", (x.PublicKey.Key as RSACryptoServiceProvider).ExportParameters(false));
string foo = DecryptRSA(ed, (x.PrivateKey as RSACryptoServiceProvider).ExportParameters(true));
Run Code Online (Sandbox Code Playgroud)

...它会抛出"密钥无法在指定状态下使用".尝试将私钥导出到的异常RSAParameter.请注意,生成PFX的证书标记为可导出(即我在创建证书时使用了pe标志).知道导致异常的是什么吗?

 static void Main(string[] args)
    {
        X509Certificate2 x = new X509Certificate2(@"C:\temp\certs\1\test.pfx", "test");
        x.FriendlyName = "My test Cert";

        X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
        store.Open(OpenFlags.ReadWrite);
        try
        {
            store.Add(x);
        }
        finally
        {
            store.Close();
        }

        byte[] ed1 = EncryptRSA("foo1", x.PublicKey.Key as RSACryptoServiceProvider); …
Run Code Online (Sandbox Code Playgroud)

.net c# encryption cryptography rsa

52
推荐指数
4
解决办法
6万
查看次数

MonoGame可靠吗?

我正在寻找一个跨平台的游戏开发框架.MonoGame看起来很容易学习和快速开发,但是我看到他们页面上的大部分游戏都不起作用,或者有很多错误.

任何人都可以解释MonoGame对于ios/droid专业手机游戏开发是否可靠?

mono xna xamarin.ios xamarin.android monogame

28
推荐指数
3
解决办法
2万
查看次数

适用于iOS的.NET单元测试运行器

有没有人写过(或知道)一个.net单元测试运行器,偏爱NUnit, iOS 上运行?还是我必须自己动手?

我的目标是在模拟器或设备上执行单元测试.到目前为止,我已经看到很多关于嘲笑monotouch.dll的帖子/博客(但是在PC上运行测试)和一个回答说明缺少这样的工具.

mono nunit unit-testing xamarin.ios ios

21
推荐指数
1
解决办法
2246
查看次数

MonoTouch:Frame.Origin在哪里?

我正在尝试将Objective-C中的这个居中代码片段转换为MonoTouch

imageView.frame.origin.x = CGRectGetMidX(view.bounds) - 
            CGRectGetMidX(imageView.bounds)
Run Code Online (Sandbox Code Playgroud)

但找不到哪里Origin.

c# mono xamarin.ios ios cgrect

19
推荐指数
1
解决办法
4805
查看次数

MonoDevelop的编辑器对你来说很慢吗?

我正在使用MonoTouch和MonoDevelop的评估版来检查用C#编写iPhone应用程序.但是,MonoDevelop的编辑对我来说非常慢.我的意思是真的很慢.我必须输入并等待呈现文本.

你经历过同样的经历吗?什么原因的任何见解?

谢谢.

iphone macos monodevelop xamarin.ios

17
推荐指数
2
解决办法
4403
查看次数

Xamarin.Mac和Mono:OSX之间的区别在哪里?

Xamarin.Mac和Mono:OSX之间的区别在哪里?我知道Xamarin买了Mono所以我认为它应该是一样的.但Mono:OSX似乎是免费的,而Xamarin.Mac至少需要399美元.那么两者之间的差异在哪里呢?

c# macos mono monomac xamarin.mac

12
推荐指数
2
解决办法
1万
查看次数

如何在Cecil中获取程序集的属性值

有没有办法获取str1代码?

[MyAttribute("str1")]
class X {}
Run Code Online (Sandbox Code Playgroud)

实例Mono.Cecil.CustomAttribute.Fields是空的.

.net c# mono metadata mono.cecil

11
推荐指数
1
解决办法
1680
查看次数

在Xamarin Android中启用Multi-Dex后出错

在创建Xamarin Android应用程序时,在添加对Infragistics Chart控件和Google Play服务的引用后,我们必须启用"启用Multi-Dex"属性true(因为应用程序达到65K的dex方法限制).我们收到了一个错误

..\CREATEMULTIDEXMAINDEXCLASSLIST: Error: Expecting class path
separator ';' before
'\Android\android-sdk\build-tools\21.1.1\lib\shrinkedAndroid.jar' in
argument number 8
Run Code Online (Sandbox Code Playgroud)

我正在使用Xamarin Studio版本5.9(版本431)Xamarin.Android版本:5.1.0

请帮助解决Xamarin中的这个问题.

c# android xamarin.android xamarin

11
推荐指数
2
解决办法
3659
查看次数

CGPDFDocument无法读取pdf

我按照以下示例在我的应用程序(Xamarin.iOS)中查看pdf.一切正常,直到最近我才开始注意到使用这种方法无法读取一些pdf文件.

我打开并获取了我的mac信息,我注意到以下内容:

  • 如果我使用Mac查看器将文档导出为pdf,它可以很好地读取,但尺寸会增加.
  • 如果我尝试按原样打开文件,则无法查看任何内容,只能查看白页.
  • 这仅适用于我的iOS应用,我的Android上的查看器工作得很好.

我可以使用Mac的查看器将每个文件导出为pdf,但这比我需要的更多.我该怎么做才能解决这个问题?

原始编码:Adobe Acrobat 10.1.16中的PDFScanLib v1.2.2

导出编码:Mac OS X 10.10.5 Quartz PDFContext


我对该程序运行了额外的测试,我可以得出结论问题是在pdf文件上使用了压缩.CGPDFDocument有没有办法删除或忽略压缩,所以我可以查看pdf?我将pdf上传到我分割页面的移动后端.我正在使用Pdfsharp来实现这一目标,如果可能的话有没有办法在保存到服务器之前清理文件?(此问题仅影响我的应用程序的iOS版本).


经过额外的测试后,我遇到了以下错误:这里 看起来使用的JBIG2压缩有一个已知的错误,当在pdf中读取jpg时会导致错误.(我将继续进一步测试,直到找到解决方案.)


更正:pdf压缩不是JBIG2,而是FlateDecode.在测试并读取二进制数据之后,我注意到原始数据和导出数据都具有相同类型的压缩.(当我尝试解决这个问题时,会更新更多信息.)

c# xamarin.ios pdfrenderer ios cgpdf

11
推荐指数
1
解决办法
460
查看次数

UILabel在Xamarin.iOS中有填充?

我正在尝试UILabel在我的Xamarin.iOS应用程序中创建一个填充.本机Objective-C应用程序中最流行的解决方案是重写drawTextInRect:

- (void)drawTextInRect:(CGRect)rect {
    UIEdgeInsets insets = {0, 5, 0, 5};
    return [super drawTextInRect:UIEdgeInsetsInsetRect(rect, insets)];
}
Run Code Online (Sandbox Code Playgroud)

这看起来很简单,我无法弄清楚如何将其转换为C#.这是我最好的尝试:

internal class PaddedLabel : UILabel
{
    public UIEdgeInsets Insets { get; set; }

    public override void DrawText(RectangleF rect)
    {
        var padded = new RectangleF(rect.X + Insets.Left, rect.Y, rext.Width + Insets.Left + Insets.Right, rect.Height);

        base.DrawText(padded);
    }
}
Run Code Online (Sandbox Code Playgroud)

这似乎会移动标签的文本,但它不会调整标签的大小.

我认为主要问题是我找不到相应的Xamarin UIEdgeInsetsInsetRect.

有什么建议?

c# iphone uilabel xamarin.ios ios

10
推荐指数
2
解决办法
9230
查看次数